mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: chiamata funzione con meno parametri

Supponendo di avere il seguente codice
typedef void (*fn)(int x, int y);
void apply(fn f,int x, int y) {
	(*f)(x,y);
}
void hook(int x) {
	fai_qualcosa_con(x);
}
void hookWrapper(int x,int y) {
	hook(x);
}
main () {
	apply(hookWrapper,42,19);
}
e' corretto passare direttamente hook invece che hookWrapper, alla 
funzione apply (forzando il tipo)?
Mi pare che le regole di chiamata delle funzioni C mi garantiscano 
comunque il corretto funzionamento del codice, sbaglio?
E.

 comunque il corretto funzionamento del codice, sbaglio?
Sì. Funziona per un combinazione fortunata di ISA x86 e calling
convention usata dal compilatore.
Luca
-- 
La mia opinione puo` essere cambiata, ma non il fatto che ho ragione.

 convention usata dal compilatore.
Non credo che sia del tutto una combinazione. Tutto sommato e' lo stesso 
principio per cui e' possibile definire funzioni con un numero variabile 
di argomenti:
int fun(int x, ...) {
	return x+1;
}
main() {
	fun(2,4);
}
E.

Newsgroup: it.comp.lang.c
Titolo: un messaggio in una dialog box

Ho iniziato da poco ad usare il Visual C/C++ .
Vorrei che un messaggio "variabile" ( variabile nel senso che non lo
specifico al momento della creazione della dialog box, ogni volta ho un
messaggio diverso) venga visualizzato in una dialog box.
E' possibile fare questo? Quali comandi o resource mi consigliate?
Grazie.


La soluzione migliore e' postare su 
news://it.comp.programmazione.win32
Il C non supporta nativamente questi problemi, sono lasciati alle api
del sistema su cui lavori (se usi il VC quindi alle api di windows...
stesso discorso vale ovviamente per tutti gli altri sisop)
Mox

Newsgroup: it.comp.lang.c
Titolo: CODIFICARE IN ASCII







Quello che devo fare e' una funzione che prende in 
input una stringa di char, e salva su un vettore i valori ASCII (in Oct) 
corrispondenti a ogni lettera della stringa.


Ad esempio se ho in input la stringa:


 


"PROGRAMMANDO IN C SONO UN POLLO"  



il vettore deve essere : [120 122 117 107 122 101 
115 115 116 104 117 ecc]


 


qualcuno puo' aiutarmi?


Grazie



 ha 
  scritto nel messaggio 
news:004301c022f3$0e0d3dc0$989c0b3e@default
...


Newsgroup: it.comp.lang.c
Titolo: DOS EXTENDER AIUTONE!

Mi sapreste indicare un dos extender free per poter far girare il mio
codice scritto in C
sotto dos ( essendo il ocdice compilato oltre i 640kb )!
Ho cercato ovunque ma non ho torvato nulla. Grazie fin da ora per ogni
consiglio o aiuto!
Ciao ARTHUR

 sotto dos ( essendo il ocdice compilato oltre i 640kb )!
Se lo compili con il DJGPP hai solo bisogno di un server DPMI come
Windows oppure CWSDPMI.EXE.
EMG

you wrote :
#Mi sapreste indicare un dos extender free per poter far girare il mio
#codice scritto in C
#sotto dos ( essendo il ocdice compilato oltre i 640kb )!
Procurati il DJGPP (
http://www.delorie.com/djgpp/
) e ricompila il
codice, non otterrai problemi.
--------------------------------------------------------
* Andrea Laforgia        (
andrea_...@bigfoot.com
) *
--------------------------------------------------------

Newsgroup: it.comp.lang.c
Titolo: prova

prova

prova
Newsgroup: it.comp.lang.c
Titolo: le piccole procedure sul mouse

Stavo cercando quel comando in C (DOS) per estrapolare da una word un
singolo bit. Qualcuno mi sa aiutare?

singolo bit. Qualcuno mi sa aiutare?
#define BIT(numero,numero_bit) ( ( numero >> numero_bit ) & 1 )
/* es.:
 * numero       10101000
 * numero_bit   76543210
 */

Newsgroup: it.comp.lang.c
Titolo: Linux e C

Salve a tutta la NG e Buona Pasqua!
Ragazzi ho un problema, sono passato da poco a linux e a gcc e
non so come fare per:
1 Pulire lo schermo
2 Identificare un evento keystroke 
(praticamente capire se è stato premuto un tasto qualsiasi)
vi prego di non rispondermi dicendomi solo l 'header x es: ncurses.h
ma ditemi quale funzione devo utilizzare
Grazie 1000 ciao!

 (praticamente capire se č stato premuto un tasto qualsiasi)
#include <stdio.h>
getchar();
3)Sei OT.
Saluti
-- 
Per l'e-mail rimuovere la frase in maiuscolo e gli underscore.
Newsgroup: it.comp.lang.c
Titolo: ragazzi sono riuscito a passarlo

Con grande fatica sono riuscito!!!!!
io volvo ringraziare tutti che mi hanno aiutato su questo grande sforzo
marcello tutti gli altri grazie veramente di cuore

 ha scritto nel messaggio
news:IMnac.158335$O31.6...@news4.tin.it...


Newsgroup: it.comp.lang.c
Titolo: <no subject>

Salve a tutti
 ho scritto una CGI scritta, in linguaggio C++, per un concorso
ma dovrà girare in una macchina Sun Solaris System V Release 2.4 con http server Apache 1.3.4, e avrei bisogno di compilarla. Mi servirebbe per domani!!
Grazie mille anticipatamente!!!! 
AltaVista Free email service
-- 
Posted from 
c000-h026.c000.muc.cp.net
 [209.228.29.118] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Salve a tutti
 ho scritto una CGI scritta, in linguaggio C++, per un concorso
ma dovrà girare in una macchina Sun Solaris System V Release 2.4 con http server Apache 1.3.4, e avrei bisogno di compilarla. Mi servirebbe per domani!!
Grazie mille anticipatamente!!!! 
AltaVista Free email service
-- 
Posted from 
c000-h003.c000.muc.cp.net
 [209.228.29.27] 




Newsgroup: it.comp.lang.c
Titolo: Cast sul valore di ritorno della malloc

Mi è stato insegnato ad usare la malloc nel modo classico:
puntatore = (*<tipo dato>)malloc(sizeof(<tipo dato>));
la cosa non ha _mai_ causato malfunzionamenti ai miei piccoli
programmi, non capisco perché il cast venga sconsigliato.
Qualcuno potrebbe spiegarmi?

 programmi, non capisco perché il cast venga sconsigliato.
Il cast viene sconsigliato perche' il C non ha un
controllo forte sui tipi, come il C++ (in cui e'
obbligatorio).  In C il cast non e' obbligatorio e
va evitato, perche' contribuisce ad ammutolire 
eventuali warning da parte del compilatore che,
invece, potrebbero essere essenziali.
Se dimentico di includere la stdlib.h il compilatore
assume che la mia malloc abbia valore di ritorno
intero e non fa alcuna assunzione su quale deve
essere la natura dei parametri.  
Potrei scrivere:
int main()
{
    int *p = (int*)malloc(1, 2, 3, 4, 5);
    printf("%d\n", *p);
    return 0;
}
e il compilatore non direbbe nulla.
Questo non vuol dire che, necessariamente, i tuoi 
programmi vadano in errore, ma bisogna stare attenti 
a delegare quanto + possibile la verifica del codice 
al compilatore.  Il cast maschera questi controlli
perche' gli fa supporre che noi ci assumiamo la 
responsabilita' di cio' che stiamo facendo.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Un altro esempio (ovvio) oltre a quello di Andrea Laforgia sul tipo di
problemi introdotti dal cast sulla malloc è il seguente:
int a=(int)malloc(300);
infatti il compilatore non da errori ma l'errore c'e' se non si sa quello
che si sta facendo!!
Ciao
Alessio C
Newsgroup: it.comp.lang.c
Titolo: operazioni di bitwaise

Salve,
sto facendo un po' di esperienza con le operazioni di bitwaise, ma ho un
piccolo problema.
Ho scritto una stringa ascii su un file trasformandola in stringa
esadecimale in questo modo:
char data[6] = {"pluto" };
fstream pippo("prova.xml", ios::bin | ios::out);
static char hex1[] = "0123456789ABCDEF";
for (int i = 0; i < 5; i++) { //&hex1[data[i] >> 4 & 0xF]
 pippo.write((const char *) &hex1[data[i] >> 4], sizeof(char));
 pippo.write((const char *) &hex1[data[i] & 0xF], sizeof(char));
}
pippo.close();
adesso vorrei aprirmi il file estrarre la stringa esadedcimale e
trasformarla in ascii.
Ma non riesco a fare la conversione se qualcuno mi puņ aiutare, lo ringrazio
anticipatamente. al momento ho provato questo, ma non funziona:
fstream pluto("prova.xml", ios::bin | ios::in);
char tmp;
pluto.seekg (0, ios::end);
int lung = pluto.tellg();
pluto.seekg (0, ios::beg);
char data1[lung];
char data2[lung];
int i(0);
for (int i = 0; i < lung; i++) {
 pluto.read(&tmp, sizeof(char));
 data1[i] = tmp;
}
int cnt(0);
for (int i = 0; i < lung; i++) {
 data2[cnt] = (4<<data1[i])&data1[i+1];
 cnt++;
 i++;
}
P.S.: scrivo e leggo il file in binario, in quanto quello che dovrei leggere
e scrivere, in realtą sono dei dati binari, ovvero compressi.
+1gAAA==^#~@

 piccolo problema.
Maurizio, il tuo codice č C++, non C.  Qui dentro si discute di C.
Hai gią postato una domanda analoga in it.comp.lang.c++.

 Hai già postato una domanda analoga in it.comp.lang.c++.
Si, questo è vero, ma le operazioni di bitwaise non fanno parte dello
standard, così ho pensato che questo fosse il ng più appropriato per questo
tipo di operazione. Infatti la domanda non è inerente al C++, ma nel come
ricomporre il byte originale dopo che l'ho recuperato da file (cosa che
faccio in C++). Infatti il punto per il quale chiedo il vostro aiuto è
questo (levando la parte C++):
Ovvero è corretto ricostruire data2 in quel modo ? dove io ho questa
situazione:
char data[6] = {"pluto" }; // in futuro verrà sostituito con un dato binario
static char hex1[] = "0123456789ABCDEF";
for (int i = 0; i < 10; i+2) {
  data1[i] = hex1[data[i] >> 4];
  data1[i+1] =  hex1[data[i] & 0xF];
}
int cnt(0);
for (int i = 0; i < 10; i+2) {
 data2[cnt] = (4<<data1[i])&data1[i+1];
 cnt++;
}
oppure devo usare questa forma:
....
data2[cnt] = (4<<data1[i]);
data2[cnt] += &data1[i+1];
......
O sono sbagliate tutte e due?
Chiedo, comunque, scusa per il crossposting. Lavorando solo in C++, mi è
venuto naturale scrivere su quel ng. L'operazione di bitwaise non è C ?

Ti ho risposto nel thread del C++.
--- bye

 char data[6] = {"pluto" }; // in futuro verrà sostituito con un dato
binario
Dichiaralo, semplicemente:
char data[] = "pluto";
Comunque, Dato:
unsigned char a = 42;
Il nibble più significativo si ottiene con
unsigned char ms_nibble = (a & 0xF0) >> 4;
unsigned char ls_nibble = (a & 0x0F);
La ricostruzione è:
a = ms_nibble << 4 + ls_nibble;
Newsgroup: it.comp.lang.c
Titolo: Libro di Kernighan

C'è qualche possibilità di reperire la bibbia di Kernighan & Ritchie in
formato elettronico?
Mi riferisco ovviamente a "Linguaggio c".
Ho la versione inglese ma mi farebbe comodo quella in italiano.
Grazie
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

anche a me interesserebbe molto..

 Ho la versione inglese ma mi farebbe comodo quella in italiano.
Fammi capire... Ti sei scaricato la "versione elettronica" pirata in
inglese e vuoi "versione elettronica" pirata in italiano?
Gradiresti anche due fette di culo tagliate sottile vicino all'osso?
Impara l'inglese e non rompere i co...siddetti.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Impara l'inglese e non rompere i co...siddetti.
Se serve a te una lezione di inglese.. a disposizione.
Se invece ti serve una lezione di stile.. beh.. scusami ma con te c'č poco
da fare.
Carlo


 da fare.
Cazzo... Dici che aver acquistato "Galateo" di Monsignor della Casa
non e' servito a niente? Mi faro' rimborsare i 6.5E dalla Garzanti.


 Se serve a te una lezione di inglese.. a disposizione.
Scusa, ma se sai l'inglese... mi spieghi cosa te ne fai di quella italiana?!
Io sono dell'idea che i libri sono sempre migliori quando non tradotti.
Tommy

> Io sono dell'idea che i libri sono sempre migliori quando non tradotti.
Anche io la penso così :)
Ho visto delle traduzione che fanno inorridire!
<ot>
Una volta vidi su un manuale di linux tradotto in italiano,
che avevano tradotto anche l'utente root in : l'utente radice
Attenzione c'è gente che profana l'informatica
</ot>
Ciao Max
-- 
+-----------------------------------------------------------+
| Secondo alcuni autorevoli testi di tecnica Aeronautica,   |
| il calabrone non può volare, a causa della forma e del    |
| peso del proprio corpo in rapporto alla superficie alare. |
| Ma il calabrone non lo sa e perciò continua a volare.     |
|					     Igor Sikorsky  |
+-----------------------------------------------------------+

 </ot>
In compenso ci sono libri che fanno schifo anche nell'originale.

Newsgroup: it.comp.lang.c
Titolo: accesso casuale a file

ciao
per accesso casuale a file, si intende l'accesso ai cosidetti file binari?
Se ï¿œ cosi'... l'utilitï¿œ di scrivere e leggere in modalitï¿œ binaria ï¿œ da 
ricercarsi in un piï¿œ vantaggioso tempo di accesso in lettura scrittura?
un'ultima domanda un file binario se non erro puï¿œ essere implementato, 
utilizzando dati a lunghezza fissa, o variabili e in tal caso 
solitamente si utilizza un simbolo che fa da segnaposto fra un campo e 
l'altro del record...
La scelta di uno o dell'altro metodo dipende da fattori di spazio a 
disposizione?
grazie

 grazie
Un file è un file. A volte contiene bytes. A volte questi bytes, usati
come indici di una tabella (ASCII per esempio) formano del testo
leggibile da una persona. In questo stranissimo caso alcuni strani
sistemi (Windows) si riferiscono ad un "file di testo". Ad un normale
programmatore il fatto che alla Microsoft usino droghe perlopiù
sconosciute non interessa, se non il dovere morale di aggiungere un
flag alla fopen per ricordarsi che il monopolio dell'informatica è
riusciuto quantomeno ad aggiungere almeno un byte a quasi ogni
sorgente C del mondo.
Detto questo, apri il tuo file con una "fopen(path, mode)" e scrivi/
leggi quello che ti serve. Controlla i codici di errore e chiudilo
quando hai finito.
Ciao!
P.S. Scusa il sarcarsmo, ma è tutto il giorno che leggo il
disassemblato di un kernel unix-like cercando un bug che non trovo, e
leggere domande Windows-like è demotivante.

 disposizione?
Di solito il formato binario ï¿œ piï¿œ facile da leggere. Perï¿œ ï¿œ oramai 
pratica diffusa utilizzare formati di testo, che sono piï¿œ portabili e 
permettono piï¿œ facilmente estensioni e debugging. Se ci sono problemi di 
spazio il file puï¿œ comunque essere passato attraverso un filtro di 
compressione.
E.
Newsgroup: it.comp.lang.c
Titolo: DJGPP

Come si intalla questo compilatore...
Quale file .ZIP devo scaricare e quale no?
Volgio anche installare l'interfaccia RHIDE
---
Il Razziatore,
The Only Good Windows in an uninstalled Windows
-----------------------------------------------
E-MAIL: 
razzi...@usa.net
WEB   : 
razziatore.dsx.org
ICQ   : 67552596

 ha scritto nel messaggio
news:3a788c75.10233414@pws...


Newsgroup: it.comp.lang.c
Titolo: Compilatore

Sapreste consigliarmi un buon compilatore per il c per windows? Qual'è 
quello che crea eseguibili più ottimizzati in termini di velocità di 
esecuzione? 


GCC, ottenibile gratuitamente con Dev-C++. Visual C, non so come si
ottiene.
Gli eseguibili più ottimizzati in velocità non sono necessariamente
una cosa ottima, e suppongo i migliori li otterrai con MS visual c o
con il compilatore per il tuo processore (se ce n'è uno). Dipende
comunque dalle opzioni di ottimizzazione che usi quando compili.
Saludos
Adriano

Newsgroup: it.comp.lang.c
Titolo: [OT?]: Generazione di Makefile da Eclipse

Ciao a tutti!
Uso Eclipse CDT come ambiente integrato per scrivere le mie applicazioni.
Tutto funziona correttamente e anche su una macchina separata senza
Eclipse posso compilare i programmi con "make".
Quello che pero' non riesco a fare e' un "make install"...
In pratica, quello che mi piacerebbe avere, e' la possibilita', tramite
Eclipse di creare un'entry nel Makefile per eseguire l'installazione del
programma.
Visto che, sicuramente, le macchine di produzione NON hanno Eclipse poter
mettere tutto nel Makefile sarebbe per me molto comodo, altrimenti devo
lanciare il make e poi farmi l'install a manina. E questo non e' bello,
specialmente se, poi, l'installazione la fara' qualcun altro.
Purtroppo non sono riuscito a trovare nessuna documentazione accettabile
sulla generazione dei Makefiles tramite Eclipse.
Qualcuno sa darmi una dritta?
Grazie
Luca Bertoncello
(
luca...@lucabert.de
)
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Qualcuno sa darmi una dritta?
Non conosco Eclipse quindi potrei essere subito smentito ma immagino 
che come altri sia solo uno strumento di sviluppo e non abbia 
possibilità di creare le direttive di installazione installazione.
Temo che l'unica soluzione sia di aggiungere a mano le direttive per 
l'installazione nel Makefile.
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   < 
http://giovanni.homelinux.net/
 >

 l'installazione nel Makefile.
Io scommetto che qualcuno ha fatto qualche modulo. Non concepisco usare
un bisonte del genere per lavorare in C, ergo non ho idee precise sul
come.
Quello che io avrei fatto (e che sono sicuro al 99% si possa fare) e'
creare il Makefile e usare solo quello per il build, dicendo ad Eclipse
di fare il build attraverso il Makefile.
Anzi, quello che avrei davvero fatto e' usare cmake, che a seconda delle
esigenze mi genera il makefile, il progetto per eclipse, visual studio,
kdevelop, xcode, etc etc etc.
Ma mi sa che siamo OT.
-- 
-riko
Newsgroup: it.comp.lang.c
Titolo: Tutorial sui sockets per iniziare

Salve a tutti,
potreste consigliarmi qualche tuturial che introduca all'uso dei sockets in
c ?
Grazie


Il linguaggio C standard non comprende socket. Dovresti rivolgerti ad un 
gruppo dedicato alla programmazione nell'ambito del tuo sistema 
operativo (ad esempio it.comp.programmare.win32 o 
it.comp.os.linux.development).
-- 
Enrico `Trippo' Porreca

 c ?
Se vuoi lavorare in ambiente GNU/Linux - BSD - Unix suggerisco
it.comp.os.linux.developement
it.comp.os.unix (bassissimo traffico)
it.comp.os.freebsd
(io comunque userei comunque *.linux.developement)
Se in ambiente MacOS o usi ancora *.linux.developement, oppure 
it.comp.macintosh.
Per Windows
it.comp.programmare.win32

Newsgroup: it.comp.lang.c
Titolo: Inviare un'e-mail

Salve.
Ho bisogno di creare un server (ANSI C sotto Linux) che sia in 
grado, ricevuto un indirizzo di e-mail da parte dell'utente connesso,
di inviargli un'e-mail.
Non credo di dover fare una chiamata al sistema.
Qualcuno di voi puo' darmi qualche dritta?
Grazie mille.
Philo

 Non credo di dover fare una chiamata al sistema.
Purtroppo non puoi fare cio` di cui hai bisogno in ANSI C: infatti lo 
standard non prevede la gestione di connessioni di alcun tipo. Hai 
quindi la necessita` di usare funzioni dipendenti dal tuo sistema 
operativo: il newsgroup in cui se ne discute e` 
it.comp.os.linux.development.
-- 
Enrico `Trippo' Porreca


Cmq le socket sono standard

 Cmq le socket sono standard
ho cercato
    int socket(int domain, int type, int protocol);
sull'ultimo standard del "C", non ho trovato niente...
Dici che possiedo una copia dello standard diversa dalla tua? :-)
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 
Hai ragione le socket non sono standard Ansi del linguaggio C quindi se 
uno dovesse utilizzare solo quello non potresti fare la cosa che vuole 
fare Philo.... e nessuna comunicazione via rete. Se però il problema di 
fondo è la portabilità del codice tra sistemi operativi (e non un prof 
universitario che si è spiegato male) le chiamate alle socket sono 
standard posix così hai la certezza che il 3 parametro della socket() è 
sempre il protocollo sia su windows che su bsd che su linux.
Tanenbaum disse: "La cosa bella degli standard è che ce ne sono 
tantissimi" :-)

 tantissimi" :-)
Chi lo sa perche' :-)
C:\>iao Angelo
P.S. Quelle citate sono solo le differenze che conosco tra i due
     tipi di socket, ne esistono anche altre.

Newsgroup: it.comp.lang.c
Titolo: Problemi con Winallegro e DJGPP

Utilizzo DJGPP per programmare in C. Sarei curioso di utilizzare le librerie
Winallegro, ma non sono riuscito a compilarle.
Lanciando il Make nella directory in cui ho scompattato il file, appaiono
messaggi di errore anche seguendo le indicazioni nelle Faq.
Qualcuno è riuscito a compilare queste librerie e le utilizza attualmente?
Cosa posso fare?
Grazie e saluti.
Lorenzo, 
gu...@ba.dada.it

Winallegro, ma non sono riuscito a compilarle.
Idem per me con il porting per X-Window...
Dopo aver applicato il  " .DIFF "  alla versione per DOS lancio il
configure e poi il make...
Il make si rattrista subito...      : - (
-- 
Gargamella from Nonsense Delivering Service
remove *dinkyisland* from address to mail me

On Sat, 14 Nov 1998 01:49:57 +0100, "Ruggiero&Lorenzo Guida"

Newsgroup: it.comp.lang.c
Titolo: Funzione pulisci schermo

Lo so che la domanda č un pņ stupida, ma chi mi dice come si pulisce lo
schermo dos?
Mi serve la funzione che mi pulisce lo schermo e mi porti il cursore nella
posizione (0,0).
In pascal la funzione si chiamava clrscr ed era inclusa nelle USES CRT, in C
come si fa?
Grazie!
--
Marco "DUFF" Palermo
Marc...@Hotmail.com
http://www.marcoduff.cjb.net/

 wrote in message
news:VN%F4.64400$pn3.7...@news.infostrada.it...


 Grazie!
Come ti ha detto Davide, non esiste una funzione standard, devi cercare
nell'help del tuo compilatore o sulle FAQs di questo gruppo (vedi firma) ,
che sono fatte apposta per rispondere alle domande di questo tipo, e che
sarebbe meglio consultare prima di postare
;-)
ciao ciao
Marco
--
Marco Coppo
University Of Sheffield
FAQ di it.comp.lang.c:
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

 schermo dos?
system( "cls" );
EMG




 Uso Win98 e Visual C++ Professional
Se VC++ ha la libreria conio.h ha sicuramente anche la funzione clrscr() per
pulire lo schermo. Altrimenti deve avere qualcosa di equivalente. non
conosco il compilatore, ma se proprio non riesci a risolvere il problema usa
una chiamata al DOS con la funzione system().
Puoi crearti una macro del tipo:
#define CLRSCR system("cls")
e la usi nel tuo codice. così se devi portare il codice su un'altra
piattaforma ti basta ridefinire la macro. (es. su UNIX usi system("clear"))
hope this help


#define CLRSCR system("cls")
Bleah !!!! ;)
molto meglio :
void clrscr()
{
     system( "cls" ) ;
}

TJK <x@x.x> wrote in message 38eb2de5...@news.libero.it...

Questione di gusti... ;-) Una macro č + veloce e il fatto che sia
nell'header mi fa saltare all'occhio immediatamente che devo modificarla per
portare il prog su un'altra piattaforma.
ciao ciao


portare il prog su un'altra piattaforma.
Appunto.
Una macro, poi, non e' maggiormente veloce al punto da giustificare
una scelta del genere. Non solo, ma le macro sono fonti di bug.
Non solo, ma se io volessi costruire un programma che a prescindere
dalla piattaforma utilizzata chiami una funzione di cancellazione
dello schermo, posso passare il puntatore alla funzione : con una
macro no. Non solo, e cosi' potrei continuare ... ;))

 Non solo, e cosi' potrei continuare ... ;))
Ok, ok, mi arrendo! ;-)


 }
Piccolo problemino:
il programma deve girare anche sotto MS-DOS 6 e questa funzione non è ben
accetta. Che si fa?


accetta. Che si fa?
Uh ?
cls e' un comando DOS sin dagli albori.
Il modo di scrivere questa funzione e' tale sin dagli albori del C.
system() e' una funzione standard.
Non vedo proprio come questo codice non sia "ben accetto".
Dovresti specificare che compilatore usi, forse e' troppo vecchio
rispetto allo standard.

 accetta. Che si fa?
In *ogni* versione dell' MS-DOS che io abbia provato (dalla 3.0 in su) cls è
sempre stata la funzione per cancellare lo schermo per cui se hai dei
problemi derivano probabilmente dal compilatore. dicci che problema ti da e
vediamo che si può fare.
ciao
M.

Newsgroup: it.comp.lang.c
Titolo: Algoritmo di confronto... AIUTO

 Logica" come ad esempio utilizzo delle matrici , grafi, o via di lì.
Esiste un elegante algoritmo che permette di cercare la LCS (longest common
subsequence) fra 2 stringhe in tempi piuttosto rapidi. Non mi ricordo
esattamente come lo si implementi, e probabilmente e' eccessivo per il tuo
lavoro (a te serve solo sapere se una stringa e' inclusa in un'altra, non
qual e' la sottostringa piu' lunga appartenente ad entrambe). Ad ogni modo,
cercando con google qualcosa trovi di sicuro.
In alternativa, c'e' il Knuth-Morris-Pratt, che a quando mi ricordo fa
esattamente quello che ti serve. Anche per questo cerca su internet o, se ce
l'hai, consulta "Algoritmi in C" di R. Sedgewick, paragrafo 19.3, pagina
289.
Hope to help,
Lanugo

 subsequence) fra 2 stringhe in tempi piuttosto rapidi.
Come non detto, ricordavo male. L'LCS c'entra poco nulla.
Lanugo

Newsgroup: it.comp.lang.c
Titolo: Problema con scanf

Ciao, sono uno studente del primo anno di informatica e sto imparando il
C. Nell'esercitazione di laboratorio mi sono trovato a scrivere il mio
primo programma in C e subito sono iniziati i problemi.
Il programma doveva chiedere all'utente di inserire un numero e scrivere
se questo era pari o dispari.
Il codice che ho scritto è questo:
#include <stdio.h>
int main()
{
    int num=0;
    for(;;)
    {
        printf("Inserisci un numero intero\n");
        scanf("%d", &num);
        if (num==0)
            break;
        if (num%2==0)
            printf("Il numero %d è pari\n", num);
        else
            printf("Il numero %d è dispari\n", num);
    }
}
Finché l'utente inserisce un numero intero non ci sono problemi, ma se
inserisco un numero decimale (per esempio 3.5) il programma inizia a
scrivere decine e decine di "Inserisci un numero intero" uno sotto
l'altro, senza dare la possibilità all'utente di inserire il numero, per
cui si rende necessario terminare il programma con ctrl-c.
Qualcuno sa darmi un suggerimento per risolvere il problema?
P.S.
Il testo dell'esercizio suggeriva di utilizzare scanf("%d", <nome
variabile intera>) proprio per gestire il caso di input errato.
Grazie, ciao.

 Grazie, ciao.
ciao ... e leggiti le faq del newsgroup ;-))
-- 
#include <stdio.h>
int main(void){char c[]={10,65,110,116,111,110,105,111,32,98,97,114,98,111,110,
101,32,60,104,105,110,100,101,109,105,116,64,116,105,115,99,97,108,105,110,101,
116,46,105,116,62,10,10,0};printf("%s",c);return 0;}

 
Ciao, dove si trovano queste faq?
		ciao, rz
-- 
                                   /TIDIRYUM - Ferrara - ITALY\
                                   \ICQ#    13901251   !!bye!!/
° °  associato #2 alla LAVPS2 ° °
Matrix - Messiah - Lisa INSTALLER

ciao, rz
ciao ...

Newsgroup: it.comp.lang.c
Titolo: I puntatori...questi(s)conosciuti

 
 Il punto e' questo : in C posso definire i puntatori che voglio(ad esempio a stringa)
 Questo significa che dopo posso usarli come voglio?Non e' che usandoli indiscriminatamente
 senza allocare aree mi possono creare problemi,come credo, anche perche' lo stesso
 programma con lo stesso compilatore da risultati diversi su Pentium e su 486(il Pentium
 mi si blocca con un errore di protezione alla memoria,il 486 muore direttamente)
 So che forse le risposte sono ovvie e banali ma gradirei un vostro parere
 Grazie.                                                Dino.
 
 
 
--
Automatic posted from 
manc...@studenti.cised.unina.it
 [192.132.34.114]
via Mailgate Server - 
http://www.mailgate.org

 senza allocare aree mi possono creare problemi
Te li crea senz'altro.
I puntatori sono un *piccolo* scoglio per chi li deve affrontare la
prima volta; comunque, a parte l'ovvio consiglio di studiare un buon
manuale, prova ad inviare un po' di codice e vediamo se esce fuori il
problema.
Ciao, julio di egidio
ju...@webzone.it

In article <Pine.ULT.3.91.980316172746.7350A-100000@studenti> 
manc...@studenti.cised.unina.it
 ("
manc...@studenti.cised.unina.it
") writes:
    Non e' che usandoli indiscriminatamente
    senza allocare aree mi possono creare problemi,come credo,
E infatti credi bene... in qualinque lingiaggio un puntatore non e`
altro che un inidirizzo di memoria. Tutta la gestione di quest'ultima
(come minimo la devi allocare prima di usarla e rilasciarla quando
non ti serve piu`) e` lasciata nelle mani del programmatore.
E` questo che rende complesso il primo approccio con i puntatori.
-- 
Mandi
	// L o r e n z o  (
http://aspide.it/freeweb/MyWorlds
)

Newsgroup: it.comp.lang.c
Titolo: Per studiare il C

Ciao a tutti!
Scusate se sono off-topic.
Sono un giovane disabile iscritto, se pur in ritardo, al 3° anno di un
istituto tecnico con indirizzo in informatica. Purtroppo per i miei
problemi di salute non posso frequentare in classe, nè sfogliare a
piacimento i libri di testo da studiare. Per questo chiedo a chiunque
fosse disponibile, di potermi gentimente dare lezioni o anche soltanto
suggerimenti sul linguaggio C attraverso uno scambio di e-mail con
tutta calma, oppure di consigliarmi un buon corso di programmazione C
su CD-ROM o in ipertesto scaricabile dalla rete.
Per rispondermi scrivete per favore alla mia e-mail sottoscritta.
Grazie comunque e buona discussione. Ciao!
Tore
e-mail: 
sava...@tin.it

su CD-ROM o in ipertesto scaricabile dalla rete.
Ciao Tore,
io per problemi di lavoro non riesco a rispondere costantemente alla
mia posta, per cui temo che in questo senso non potrei aiutarti.
Pero' ti suggerisco di cercare in rete i tutorial sul C/C++ della
Coronado Enterprise. Molte persone (io gli ho dato solo uno sguardo)
ritengono che siano molto validi.

su CD-ROM o in ipertesto scaricabile dalla rete.
Un manuale in formato PDF in inglese ?
http://bulls.kordic.re.kr/~shkim/ftp/doc/cpp/toc.htm
Newsgroup: it.comp.lang.c
Titolo: [?] ADO 2.5: dove trovarle?

Ciao a tutti.
Problema: so che in giro ci sono gli ADO in versione 2.5. Ho provato a
girare un po' per microsoft, pero' non sono riuscito a trovarli (o
meglio, so che sono allegati a prodotti vari tipo Acces2000....).
Qualcuno di voi ha avuto lo stesso problema e mi sa dare il giusto
URL? 
Ciao e grazie in anticipo
Luca Menegotto

Chiedo umilmente perdono.... ho sbagliato newsgroup.....
:->
Ciao!
Luca Menegotto.

 Chiedo umilmente perdono.... ho sbagliato newsgroup.....
Viva la faccia! Sei più unico che raro... :-)
Grazie.
EMG

Newsgroup: it.comp.lang.c
Titolo: AIUTO!! Lex e Yacc

Ciao a tutti, 
sono una tesista alle prese con lex e yacc ed è da circa 10 giorni che 
sono ferma a causa di un problema: devo compilare con il mio programma 
diversi files lex e yacc ma ottengo solo messaggi di errore dato che 
per ogni file, lex e yacc ridefiniscono automaticamente le stesse 
variabili e funzioni (yy_push_state, yyin, ecc.). Come devo fare!? 
Tra le opzioni di compilazione non ho trovato nulla che mi risolva il 
problema!
Grazie :)
nat...@libero.it
-- 
Posted from 151.21.21.174 by way of 
smtp3.libero.it
 [193.70.192.53] 
via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 ha scritto nel messaggio
news:G9CZGX$IGHHu0_ZyFTKPePB61Fkz...@libero.it...


Newsgroup: it.comp.lang.c
Titolo: uso di thread in funzioni

Salve,
volevo sapere se io creo un thread all'interno di una funzione, che
relazione ha la vita del thread alla vita della funzione. Cioè, la
funzione non viene terminata fintantochè il thread non viene chiuso? O
viceversa, il thread viene chiuso quando la funzione viene terminata?
oppure il thread una volta creato ha vita proprio indipendente dalla
funzione chiamante? La funzione è intesa chiamata dal main() e il
thread non viene mai chiuso da una pthread_exit() volutamente.
Grazie,
Giulia

La vita del thread e' equivalente ad un processo parallelo, quindi non
e' legata alla funzione chiamante e non e' quindi terminata
dall'uscita dalla funzione.
Comunque threading non fa parte dello standard C, ma del sistema
operativo su cui sviluppi, quindi per approfondimenti dovresti
chiedere ad altri gruppi specifici.
Se proprio ti perdi, prova a postare su comp.unix.programmer...


se sta implementando delle thread POSIX in C non vedo perche' non
possa postare qua.
Ciao Jack

Perche' questo non e' comp.posix.programmer o comp.std.posix.
Posix non e' uno standard per il C, ma uno standard per i sistemi
operativi.
E comunque non e' che non ho risposto, ho semplicemente detto che ci
sono altri newsgroups piu' adatti al topic.

 possa postare qua.
Eh! eh!  Devi essere nuovo del NG. ;-)
Ciao
Giovanni
-- 
   A computer is like an air conditioner,
   it stops working when you open Windows.
   Registered Linux user #337974  < 
http://giovanni.homelinux.net/
 >
Newsgroup: it.comp.lang.c
Titolo: Fattorizzazione LU di matrici

Ciao gente,
sto cercando di scrivere un codice per scomporre le matrici in
triangolare superiore e inferiore (U ed L rispettivamente).
Ho scritto in C la seguente funzione:
void LUkji(int n, double M[n][n]){
	int i,j,k,t;
	for(k = 0; k < n; k++){
		for(t = k+1;t <= n; t++){
			M[t][k] = M[t][k]/M[k][k];
		}
		for(j=k+1;j<n;j++){
			for(i=k+1; i<n;i++){
				M[i][j] = M[i][j] - M[i][j]*M[k][j];
			}
		}
	}
}
cercando di tradurne una scritta in octave che ho trovato nel libro
dei prof. Quarteroni, Sacco e Salieri, che vi riporto qui sotto:
function [A] = lukji(A)
[n,m] = size(A)
if n ~= m, error('solo sistemi quadrati'); end
for k = 1:n-1
	if A(k,k) == 0; error('elemento pivotale nullo'); end
	A(k+1:n,k) = A(k+1:n,k)/A(k,k);
	for j = k+1:n
		i = [k+1:n]; A(i,j) = A(i,j)-A(i,k)*A(k,j);
	end
end
return
La funzione scritta in octave mi restituisce lo stesso risultato che
ottengo facendo i conti a mano, quella in C invece no :(
Quale può essere l'inghippo?
Grazie mille a tutti come al solito!
Franco :)

 Franco :)
Non hai tenuto conto in modo correto del fatto che in C gli indici degli 
array e matrici partono da 0 e non da 1.

Lo fai per esercizio o perche' ti serve? Se e' la seconda, ti
consiglio di usare le librerie BLAS e LAPACK ottimizzate per la tua
macchina.
Pleg

 array e matrici partono da 0 e non da 1.
Grazie, sto ricontrollando il codice e rifacendomi i conti :)
Dannati indici... :-P
Newsgroup: it.comp.lang.c
Titolo: variabile char in file

Scusate l'ignoranza... ma non riesco a far scrivere al mio prg cio' che
acquisisce dalla tastiera... ovvero vorrei che:
char nome;
...
FILE *fin
...
...
...
printf("Scrivi:");
gets(nome);
    fin = fopen("nome.txt", "wb");
    fprintf(fin, " Nome = %d", nome);
vorrei che nel file verrebbe scritto il carattere che digito dalla
tastiera!!!
Ho anche un altro problema ovvero:
char anno[5];
int a;
File *fin;
...
...
prinf("\nInserisci anno: ");
a = atoi(gets(anno));
fin = fopen("prova.txt", "wb");
fprintf(fin, "anno = %d", a);
quello che mi viene scritto nel file e' il numero che inserisco dalla
tastiera' xo' cercavo un metodo piu' elegante e sbrigativo... sempre
semplice xo'...
scusate se sono troppo newbie... abbiate pazienza
NighTiger
---------------------------
 This is a point of
    not return
---------------------------

     fprintf(fin, " Nome = %d", nome);
----------------------------^ %c per scrivere il carattere (%d scrive il
valore ascii)

vorrei che nel file verrebbe scritto il carattere che digito dalla
                                 ^^^^^^^^^^^
venisse.....
;-))
Christian Salvaneschi
Casarza Ligure, Genova, Italy
e.mail: 
cr...@geocities.com
   web: 
http://www.geocities.com/SiliconValley/Lakes/5139

NighTiger (
nigh...@altavista.net
) wrote:
[ snip ]
: char nome;
int nome;
: ...
: FILE *fin
: ...
: printf("Scrivi:");
: gets(nome);
if((nome = getchar()) == EOF) {
	/* errore */
}
:     fin = fopen("nome.txt", "wb");
if((fin = fopen("nome.txt", "w") == NULL) {
	/* errore */
}
:     fprintf(fin, " Nome = %d", nome);
fprintf(fin, " Nome = %c", nome);
: vorrei che nel file verrebbe scritto il carattere che digito dalla
: tastiera!!!
Ahem.../verrebbe/ ??? ;)
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)

 semplice xo'...
Potresti scrivere direttamente
fprintf(fin, "anno = %s", anno);
eliminando così la necessità della variabile a e della funzione atoi().
EMG

valore ascii)
^^^^^^^^^^^^^^^^ Grazie infinite... mi sa che saro' un grosso frequentatore
di questo ng se sono tutti preparati come te ;-))


 Usa: nome=(char)getchar();
Il cast è inutile se non dannoso.
EMG

 
Dannoso: non credo (il compilatore lo fa in automatico)
Inutile: io ho un compilatore che mi segnala warning!

 Inutile: io ho un compilatore che mi segnala warning!
Va bene che secondo lo standard i compilatori hanno piena libertà di
dare gli warnigns che ritengono opportuni ma questo mi sembra proprio
sbagliato. Qual'è il messaggio esatto che ti dà?
EMG

 
Hai ragione un'altra volta. Il compilatore in questione (Intel iC386,
scommetto che non lo usa nessuno) segnala una valanga di remarks (non
warning) su quasi tutte le conversioni ma non su questa (ma ho preso la
brutta abitutdine di 'castare' anche dove non dovrei).
Ho risposto d'istinto senza verificare.
Saluti, Alberto.
Newsgroup: it.comp.lang.c
Titolo: torre di Hanoi

Qualcuno sa per caso dove trovare
un sito che contenga documentazione (anche in inglese)
di questo algoritmo?
Grazie

...

hmm ...
classico problema sulla ricorsione !
ai primordi (prima del web !) si applicava in Pascal (v.v. Introduzione al
Pascal di Pierre Le Beux ed. Sybex Europa - 1980  poi GEJackson 1982)
... puó darsci che in qualche ansa della ragnatela sia stato immesso !
.. usare un buon motore di ricerca con i riferimenti dati considerando che
lo stesso algoritmo é stato usato anche in un successivo demo grafico in
linguaggio prolog ... e poi anche in C ecc. ecc.
mandi
Vito Toneatto

di questo algoritmo?
Ti ho scritto il programma di seguito, ovviamente ricorsivo ;), nel caso ti
interessasse :
/* Torre di Hanoi */
#include <stdio.h>
const char * movimento = " sposta il disco n. %d sul palo di " ;
typedef enum { sinistra, centro, destra } palo ;
void scrivi_palo( palo x )
{
     switch ( x )
     {
	case sinistra : printf("sinistra\n"); break;
	case centro   : printf("centro\n"); break;
	case destra   : printf("destra\n"); break;
     }
}
void sposta( int n, palo sorgente,
		    palo ausiliario,
		    palo destinazione )
{
     if (n == 1)
     {
	printf(movimento, n );
	scrivi_palo( destinazione );
     }
     else
     {
	sposta( n - 1, sorgente, destinazione, ausiliario );
	printf(movimento, n );
	scrivi_palo( destinazione );
	sposta( n - 1, ausiliario, sorgente, destinazione );
     }
}
int main()
{
    int n ;
    printf("Numero di dischi : "); scanf("%d", &n);
    sposta( n, sinistra, centro, destra );
    return 0;
}
Skyscraper
---------------------------
andrea_...@bigfoot.com
--
Posted from 
itaca.ulysse.it
 [195.223.254.1]
via Mailgate.ORG Server - 
http://www.mailgate.org
Newsgroup: it.comp.lang.c
Titolo: creare un file di testo

Salve, c'è qualcuno che può illuminarmi?
sto cercando il modo di creare un file di testo. Vorrei che il programma
prendesse tutto quello che scrivo, come se avessi una macchina da scrivere.
Vorrei creare il file per poi rileggerlo un carattere alla volta e calcolare
le frequenze di ogni carattere. Qualcuno può darmi qualche suggerimento?
Ringrazio anticipatamente. Penros.

 Tutor at D.S.I. University of Milan
V_/_ 'The future will not remember, the past doesn't forget.'
I'm Linux zion 2.4.0 #4 Thu Jan 11 15:33:34 CET 2001 i586

if ( fp == -1 ) {
-1 ??? forse intendevi NULL ...
Andrea
--
Andrea Griffini, Programmer
http://www.netservers.com/~agriff

 wrote in message
3a5dff1d...@news.interbusiness.it...


Io userei il getc e analizzerei un carattere alla volta finchè non premo
invio (che se non sbagli o corrispinde al 10...)
del tipo
char c;
while(c=getc!=10) {etc...}
Ciiips
Enrico S.
--
Webmaster della Pagina NON Ufficiale del SonyCRX100
SonyCRX120,  SonyCRX140E/S, SonyCRX100EX, HP8100
HP8200, HP9100 & HP9200
http://www.freeweb.org/computer/SonyCRX100/


wrote:
La lettura di un file e lo Zen:
Penso che il modo migliore per leggere un file dipenda anche dal
file... Nel senso che leggere un carattere alla volta un file di 50
mega comporta un numero di accessi al disco da paura, in quest caso
forse e' preferibile una lettura a bufferate da 500 bytes (500 per
esempio) con fread. Se poi il file fosse composto da record magari di
lunghezza fissa, allora forse davvero conviene leggere a bufferate di
dimensione fissa. Ciao.


 invio (che se non sbagli o corrispinde al 10...)
Corrisponde al 13 e comunque io userei: ( da man fgets )
SYNOPSIS
#include <stdio.h>
char *fgets(char *s, int size, FILE *stream);
 
... 
fgets()  reads  in  at  most one less than size characters
from stream and stores them into the buffer pointed to  by
s.  Reading stops after an EOF or a newline.  If a newline
is read, it is stored into the buffer.  A '\0'  is stored
after the last character in the buffer.
 
while (fgets(stringa, "lunghezza stringa", fd) != NULL) {
}
Un pò di post precedenti ho confuso il caso d'errore per una fopen, era da
testare se ritornava != NULL come mi hanno segnalato, chiedo venia! :)


Newsgroup: it.comp.lang.c
Titolo: studenti in cerca di aiuto

salve siamo due studenti di ing elettronica a cui è stato assegnato un
compito:costruire una strumento software che date delle equazioni e
dei parametri in ingresso dia dei grafici in uscita.Il tutto on-line.
Qualcuno ha idea di come si possa fare o se già esiste qualcosa di
simile?ciao Nadia e Paolo

nadi...@tiscalinet.it
 (nadia varchione) writes:

Creare un'interfaccia web per gnuplot;-)
-- 
David N. Welton
   Consulting: 
http://www.dedasys.com/
Free Software: 
http://people.debian.org/~davidw/
   Apache Tcl: 
http://tcl.apache.org/
     Personal: 
http://www.efn.org/~davidw/

 wrote:

php offre supporto per la generazione al volo di immagini, in questo modo
potreste realizzare i vostri grafici.
www.php.net
Newsgroup: it.comp.lang.c
Titolo: come cambiare il colore dello sfondo?

Quello che volevo sapere è come si fa a cambiare il 
colore dello sfondo
della finestra principale che di default è bianco.
Sono in un progetto
basato su CView, usando MSVC++6.
Ho provato (senza nessun effetto) a
fare quanto segue:
Dentro il corpo della funzione:
BOOL
CMainFrame::PreCreateWindow
che si trova nel file MainFrm.cpp,
ho
inserito la seguente riga:
COLORREF SetBackgroundColor( RGB(500,0,0) );
Non da errore, ma la finestra resta bianca (mentre dovrebbe diventare
rossa).
Dove sbaglio?
Grazie! Ciao.
PS: ho provato (invano) anche
con... SetBkColor( );
--------------------------------
Inviato via 
http://usenet.iol.it

Dove sbaglio?
Sei OT:
1 - qui si parla di C e non di C++
2 - la tua domanda riguarda windows, quindi devi scrivere su
it.comp.programmare.win32.
-- 
Marco Barisione (ICQ 84277092)

Dove sbaglio?
Nella scelta del NG :)  it.comp.programmare.win32.
-- 
Mox
"Trust the programmer."
"Don't prevent the programmer from doing what needs to be done."
"Keep the language small and simple."
"Provide only one way to do an operation."
Newsgroup: it.comp.lang.c
Titolo: Per favore Aiutatemi al piu presto...Grazie

Scusate se posto  questo messaggio ma il tempo per me stringe.....devo
affrontare una prova di C
il problema è questo:
con la funzione fscanf come posso leggere stringhe in cui sono presenti
spazi e ritorno a capo....
esempio....
in un  file di testo cosi strutturato
pippo
anco ra
albe ro
voglio che mi legga ad ogni fscanf
pippo
ancora
albero
devo usare      fscanf(file," %[^\t........]s",stringa);
Grazie MILLE

voglio che mi legga ad ogni fscanf
#include <stdio.h>
char* nospcstr(char *s)
{
     if (s)
     {
        int i, j;
        for (i = 0, j = 0; s[i]; i++)
        {
            if (s[i] != ' ')
            {
               s[j++] = s[i];
            }
        }
        s[j] = '\0';
     }
     return s;
}
int main()
{
    char s[128], rem[128];
    while (fscanf(stdin, " %[^\n]", s) != EOF)
    {
          printf("stringa letta \"%s\"\n", nospcstr(s));
    }
    return 0;
}
Newsgroup: it.comp.lang.c
Titolo: assegnare a una variabile a partire dal suo nome

Ciao a tutti,
amo il c ma non lo conosco.....
vorrei assegnare un valore ad una variabile, a partire dal suo nome
memorizzato in UN'ALTRA variabile:
char *myVar = "bernardo";
char *varname = "myVar";
char *varvalue = "camillo";
//qui vorrei assegnare a myVar il valore "camillo", A PARTIRE DA varname
//?????
//oppure (che è lo stesso) stampare "bernardo" referenziandolo SOLO  a
partire da varname
//Output desiderato: Here you go: bernardo
printf("Here you go: %s\n", <qualche espressione che contiene varname> )
Si può fare? Come?
Grazie in anticipo

 memorizzato in UN'ALTRA variabile:
Non si puo' fare.
Pero' e' probabile che le cose che vuoi fare
tu le possa fare con un array di stringhe,
usando un indice numerico al posto di un nome.
(studiati gli array....).
g.
Newsgroup: it.comp.lang.c
Titolo: [beginner] Domandina sui file descriptors

Salve a tutti,
sto studiando le funzioni C di manipolazione dei files.
Leggendo a riguardo delle funzioni di apertura ne vengono
indicate 2:
open (torna l'int del file descriptor)
fopen (torna FILE *)
Quando occorre usare l'una anzichč l'altra ?
Ulteriore domandina, il file descriptor ritornato č privato ad ogni processo
che gira sulla macchina ? Mi spiego, una volta lanciato il programma che
supponiamo mi ritorna il fd 5, se da un altro programma punto a quel fd
per scrivere, andrň a scrivere sullo stesso file ?
Grazie 1000
Francesco

 per scrivere, andrò a scrivere sullo stesso file ?
Non lo so, prova!
Comunque e' solo una curiosita' perche' in effetti:
i file descriptor ti vengono ritornati dalla fopen in base al file che vuoi
aprire; tu non ti devi curare del loro valore.
Se vuoi scrivere sullo stesso file da due processi, usi la fopen passandogli
il path dello stesso file e ti viene ritornato automaticamente il fd adatto.
Ciao,
Ema

 per scrivere, andrň a scrivere sullo stesso file ?
Anche per questo sei nel posto sbagliato. In C standard non esistono 
processi.
-- 
Enrico 'Trippo' Porreca
Newsgroup: it.comp.lang.c
Titolo: QUAL' E' LA DIFFERENZA??!!?????

Salve a tutti,
vi scrivo perchè ho un atroce dubbio riguardo a 2 scritture che vogliono
dire la stessa cosa ma sono disposte in maniera differente;
dato qs strafalcio di codice:
   #define MAX 10
            int vettore[MAX];
            int i=0;
                    for(; i!= MAX; i++)
                                scanf(---------------)
ORA, NELLA SCANF NASCONO I DUBBI!!!
che differenza c'è nello scrivere
                            scanf("%d",vettore[i]);
                                        oppure
                            scanf("%d",i[vettore]);
e soprattutto perchè la seconda scrittura è
giusta?!?!?!?!!?!?!??????????????????????????
                        GRAZIE PER TUTTE le risposte ESUDIENTI
!!!!!!!!

...


 e soprattutto perchè la seconda scrittura >è giusta?!?!?!?!!?!?!??????????????????????????
  Nessuna differenza: in C il simbolo con il quale viene definito un
vettore punta alla locazione del suo primo elemento e l'indice e` lo
spiazzamento, calcolato in base alla dimensione del tipo, dell'elemento
desiderato (e` questo il motivo per cui gli indici dei vettori del C
iniziano da zero).
  Poiche`, dunque, si ha la seguente equivalenza formale:
	vettore[i] == *(vettore+i)
sia che tu scriva vettore[i] o i[vettore] viene semanticamente
interpretato come "il valore contenuto nella locazione di memoria
individuata dalla somma di 'vettore' e di 'i'. E, dato che nelle
addizioni, cambiando l'ordine degli addendi il risultato non cambia...
;)
  Ad ogni modo, ti sconsiglio di usare la seconda forma, visto che e`
poco comprensibile, a meno che tu non voglia fare la figura del
"magheggione"... :)))
	Alla prossima,
		Marco

                            scanf("%d",i[vettore]);
Nessuna differenza.
In C scrivere a[5] o 5[a] e' la stessa identica cosa.
Questo perche' il riferimento alla locazione di memoria nel primo caso
verrebbe scritto come a[5] = *(a+5) = *(5+a) = 5[a].

    i[&vettore[0]]  e' come  *(&i+&vettore[0])
No. 
i[&vettore[0]] equivale a *(i+&vettore[0])

                             scanf("%d",i[vettore]);
[root@fokhouse /root]# grep -A10 ^6\.11 /usr/doc/FAQ/txt/C.FAQ
6.11:   I came across some "joke" code containing the "expression"
        5["abcdef"] .  How can this be legal C?
A:      Yes, Virginia, array subscripting is commutative in C.  This
        curious fact follows from the pointer definition of array
        subscripting, namely that a[e] is identical to *((a)+(e)), for
        *any* two expressions a and e, as long as one of them is a
        pointer expression and one is integral.  This unsuspected
        commutativity is often mentioned in C texts as if it were
        something to be proud of, but it finds no useful application
        outside of the Obfuscated C Contest (see question 20.36).
[root@fokhouse /root]#
Ciao ciao,
Andrea
-- 
"...Unix, MS-DOS, and Windows NT (also known as the Good, the Bad, and 
 the Ugly)."
(by Matt Welsh)