mii-community/UsenetArchiveIT-conversations huggingface dataset:
Newsgroup: it.comp.lang.c
Titolo: fscanf()

ciao a tutti,
mi trovo davanti ad un piccolo problema.
Ho creato un file ("parametri.ini") formattato nel seguente modo (il nome e 
il valore sono separati da ":"):
---------------------------
nomeParametro1:valoreParametro1
nomeParametro2:valoreParametro2
nomeParametro3:valoreParametro3
...
nomeParametroN:valoreParametroN
------------------------------
volevo prelevare dal file il nome ed il valore e metterli in 2 stringhe
dopo aver aperto il file pensavo di fare una cosa del genere:
while(feof(fileIni)==0)
{
    fscanf(fileIni,"%s:%s",par1,par2); //tra i due %s c'č un ":"
    printf("%s %s\n",par1,par2);
}
Il problema č che la fscanf() non mi riconosce i due punti come separatore 
(se metto uno spazio tutto ok).
Come faccio a dirgli di riconoscere i ":" come separatore al posto dello 
spazio vuoto?
Grazie
Cendo 

 spazio vuoto?
Metti esplicitamente la classe di caratteri che vuoi matchare oppure,
come in questo caso, che *non* vuoi matchare. Ad esempio per prendere
tutto tranne ':' e '\n':
fscanf(file, "%[^:\n]:[^:\n]", par1, par2);
Luca
-- 
Home: 
http://kronoz.cjb.net
"Chi parla in tono cortese, ma continua a prepararsi, potra` andare avanti;
 chi parla in tono bellicoso e avanza rapidamente dovra` ritirarsi" 
Sun Tzu -- L'arte della guerra

 fscanf(file, "%[^:\n]:[^:\n]", par1, par2);
Ho provato ma non va.
Adesso provo a vedere da qualche parte la spiegazione della sintassi che hai 
usato (non la avevo mai vista) e vedo di risolvere.
Grazie per la dritta.
Cendo 

 spazio vuoto?
Metti esplicitamente la classe di caratteri che vuoi matchare oppure,
come in questo caso, che *non* vuoi matchare. Ad esempio per prendere
tutto tranne ':' e '\n':
fscanf(file, "%[^:\n]:%[^:\n]", par1, par2);


 Ho provato ma non va.
Per qualche strano motivo il supersedes che ho inviato sembra che non
sia ancora stato processato dal server :|
Il messaggio corretto ha msgid:  <dt29oe$60l$2...@dreamland.darkstar.lan>
Manca un segno di percentuale nella stringa sopra, quella corretta e'
questa:
fscanf(file, "%[^:\n]:%[^:\n]", par1, par2);
Luca
-- 
Home: 
http://kronoz.cjb.net
"La teoria e` quando sappiamo come funzionano le cose ma non funzionano.
 La pratica e` quando le cose funzionano ma non sappiamo perche`.
 Abbiamo unito la teoria e la pratica: le cose non funzionano piu` e non
 sappiamo il perche`." -- A. Einstein

 fscanf(file, "%[^:\n]:%[^:\n]", par1, par2);
Avevo intuito la mancanza del "%", cmq non funziona lo stesso.
Ho risolto in questo modo:
fscanf(fileIni,"%[^:]:%s\n",nomeParametro,valoreParametro);
Cosě funziona.
Facendo come dici tu mi si pianta il programma.
Grazie comunque, mi hai risolto il problema.
Cendo
Newsgroup: it.comp.lang.c
Titolo: I Vettori: me li spiegate bene?

Niente da fare sui libri non capisco mai i vettori in C. Un sito che
li spieghi anche in modo scherzoso?
grazie infinite :)

 li spieghi anche in modo scherzoso?
Non credo esista un modo "scherzoso" di spiegare i vettori.
-- 
Morza Giorzola - Apprentice Coordination Administrator

Non credo esista un modo "scherzoso" di spiegare i vettori.
per scherzoso intendo in maniera meno formale del solito.

 Non credo esista un modo "scherzoso" di spiegare i vettori.
Perché no: "I vettori sono la stessa roba dei treni. Ogni vagone è numerato;
ricorda che la locomotiva ha il numero zero. Si sale su un vagone passando
dalla porta: [ ] . Occhio però a non cercare di salire sul vagone precedente
la locomotiva o seguente l'ultimo vagone, perché tali vagoni ovviamente non
esistono e si casca sui *binari*".
--
Cingar
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

esistono e si casca sui *binari*".
eh eh meglio di così ;) comunque non esiste un sito come molti sussidi
visivi? :)

http://programmazione.html.it/c/c_21.htm
-- 
Taglia
http://www.vortexmind.net
http://www.tgplanes.com
http://www.netwargamingitalia.net

 visivi? :)
Nel senso di ducumentari sui vettori? Oddio, non ne ho mai visti, ma credo
che sarebbero una cosa noiosissima, peggio di quelli sulla vita sociale dei
batteri.
Sui vettori dimenticavo una cosa importante: a differenza dei treni veri,
non c'è niente che ti possa dire quanti vagoni ci sono. O lo sai perché
l'hai deciso tu o perché te l'ha detto chi l'ha deciso o non c'è modo di
"contarli".


 "contarli".
mh?
L'operatore sizeof non va bene? O mi è sfuggito qualcosa?



http://programmazione.html.it/c/c_21.htm
BELLISSIMO!!!! grazie infinite! :)

 L'operatore sizeof non va bene? O mi è sfuggito qualcosa?
Se sei fortunato, e non ti trovi a lavorare su vettori passati per 
puntatore, come succede il piu' delle volte ;)
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Linux registered user 299762 @ Linux registered machine 213003

 L'operatore sizeof non va bene? O mi è sfuggito qualcosa?
Va bene solo se lo usi su una variabile array statica (e, anche in questo
caso, ritorna la dimensione in byte, non il numero di elementi).
Se si tratta di un'array dinamico (allocato con la malloc) o, comunque, se
usi l'array tramite un puntatore, sizeof non serve a niente.
Supponendo che, nel nostro compilatore, un int sia 2 byte e un puntatore 4
byte:
int grandezzaArray (int array [])
// Scrivere (int * array) era lo stesso
{
    return sizeof(array);
}
int main ()
{
    int array1 [10];
    int * array2 = malloc(sizeof(int) * 10);
    printf("%d\n", sizeof(array1)); // Stampa: "20".
    printf("%d\n", grandezzaArray(array1)); // Stampa: "4".
    printf("%d\n", grandezzaArray(array2)); // Stampa: "4".


 caso, ritorna la dimensione in byte, non il numero di elementi).
Quell'aggettivo "statica" fate conto di non averlo visto...
E poi non m'ero accorto che aveva già risposto Mattia Belletti.

Newsgroup: it.comp.lang.c
Titolo: cos()

Se scrivo il seguente programma prova.c:
#include <math.h>
int main();
int main()
{
 double x, seno;
 x=1/12;
 seno=sin(x);
 printf("\n%f\n",  seno);
 return 0;
}
e poi compilo sotto linux con:
gcc -o prova prova.c
compare la scritta:
/tmp/ccCdkr67.o: In function `main':
/tmp/ccCdkr67.o(.text+0x1e): undefined reference to `sin'
collect2: ld returned 1 exit status
Perché? C'è qualcuno che mi può aiutare?
lore...@tin.it

 Perché? C'è qualcuno che mi può aiutare?
  Devi collegare all'eseguibile la libreria delle funzioni matematiche i
cui prototipi sono dichiarati in <math.h>.
	$ gcc foo.c -o foo -lbar
  Le librerie UNIX hanno un formato dei nomi particolare: libID.(so|a),
dove ID e` l'identificativo della libreria che va passato tramite lo
switch -l. In particolare, la libreria matematica si chiama libm, per
cui dovrai compilare con:
	$ gcc prova.c -o prova -lm
	Alla prossima,
		Marco
PS Perche` il subject e` "cos()" se il contenuto riguarda "sin()"? ;)
PPS Si`, la libreria standard e` collegata per default... :))

 PPS Si`, la libreria standard e` collegata per default... :))
Perché, la libreria matematica non è standard?
EMG

 Perché, la libreria matematica non è standard?
  No, e` *una* libreria standard, non e` *la* libreria standard...
Speravo che il gioco di parole fosse piu` chiaro... ;)
	Alla prossima,
		Marco

più che altro, fa parte della libreria standard, ma è quasi sempre
fisicamente separata da quella contenente le altre funzioni, e non viene
linkata automaticamente, a differenza dell'altra...
--
Marco Iannaccone
marc...@tin.it
Nick: Tolkien
ICQ UIN: 18748121
"This is a new ship, boy, but she's got the right name...
You treat her like a lady, and she'll always bring you home"
"Questa è una nave moderna, ma ha un nome antico e glorioso...
Trattala come una signora e ti riporterà sempre a casa"
FAQ di it.comp.lang.c:
http://www.programmazione.it/linguaggi/c/itcomplangc.htm

gcc -o prova prova.c
manca il link alle librerie matematiche
gcc -lm -o prova prova.c
Aranar
e-mail: 
ro...@geocities.com
http://www.nettaxi.com/citizens/Aranar/
   (above all VgaPlanets)
http://www.tempolibero.com/user/aranar
    (sopratutto VgaPlanets)

Perché? C'è qualcuno che mi può aiutare?
Ciao, P. ;-)
Newsgroup: it.comp.lang.c
Titolo: Inizializzare una lista?!

Ciao a tutti!
Qualcosa non fila in questo codice (lo accodo al messaggio), mi dà errore
nella definizione della funzione. Mi scrive: "syntax error before '*' token
in function 'inizializza': number of arguments doesn't match prototype
declaration 'list' undeclared (first use in this function)".
Non è vero che il numero degli argomenti non si "accorda" a quello del
prototipo... sono gli stessi!
Chiedo scusa per le mie domande frequenti, e ringrazio tutti comunque.
Rocky3
#include <stdio.h>
#include <stdlib.h>
int main()
{
  struct  ML {
          int dati;
          struct ML *next;
          };
  typedef struct ML ElementoStruttura;
  typedef ElementoStruttura *testa; //testa identifica un tipo di dato che
è un puntatore al tipo ElementoStruttura
 
  void inizializza(testa *list);
 
  testa Lista1; //Lista1 è un puntatore al tipo ElementoStruttura
  testa *appoggio;
 
  appoggio = &Lista1;
 
  inizializza(appoggio);
 
  system("PAUSE");	
  return 0;
}
void inizializza(testa *list)
{
 *list = NULL;
}
-- 
"Il sapere e la ragione parlano, l'ignoranza ed il torto urlano".
Arturo Graf / Indro Montanelli / Anonimo

   void inizializza(testa *list);
Tutta questa roba(ccia :-) va spostata fuori dal main().
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 Tutta questa roba(ccia :-) va spostata fuori dal main().
Ora finalmente compila! Grazie!
Ma perché "robaccia" :-)?
Rocky3

Newsgroup: it.comp.lang.c
Titolo: Dov'e' l'errore?

Salve a tutti! Ho creato un array di char in questo modo:
char nomeArray[300][4000];
Devo riempirlo con dei valori presi da un file contenete 4000 righe per cui
procedo in questo modo
// aperto il file in modalita' sola lettura
for(int i = 0; i < 4000; i++)
    fgets((nomeArray)[i], 300, fileOpen);
che (almeno credo) dovrebbe mettere il valore letto in ogni riga, in ciascun
elemento dell'array. Ora il compilatore mi da il messaggio di Access
Violation. Perche'? Ho gia' creato un altro array simile e non l'ho
inizializzato; l'ho subito usato con strcpy e svolge il suo lavoro bene
(forse strcpy alloca la memoria necessaria alla stringa di destinazione?). A
me serve semplicemente di mettere all'interno di
(nomeArray)[i]  il contenuto di una riga del file aperto. Spero di non
essere stato troppo complicato (anche se ne dubito)
P.S: Sto pensando seriamente di distruggere i due Array e fare una struttura
dati per l'occasione (che bello creare software senza progettazione! E'
proprio professionale!!! :-(   ) Me lo consigliate? Nel frattempo vado a
farmi un giretto nel mio girone infernale... il veterinario mi ha detto che
devo mangiare meno carne umana. :)
HellHound - uccidi CERBERO per l'indirizzo

 Devo riempirlo con dei valori presi da un file contenete 4000 righe
Allora devi dichiararlo come
char nomeArray[4000][300];
EMG
--
EMAG Software Homepage:     
http://www.emagsoftware.it
The EMG's ZX-Spectrum Page: 
http://www.emagsoftware.it/spectrum
The Best of Spectrum Games: 
http://www.emagsoftware.it/tbosg

     fgets((nomeArray)[i], 300, fileOpen);
Non e' molto carino che confinui a fare fgets anche quando arrivi alla fine 
del file, potresti aggiungere un controllo. Nota che nell'array ci metti 
anche la newline e non e' detto che questa ti serva effettivamente.
Per il resto, sei sicuro di aver usato gli indici in modo corretto? O 
meglio, di non averli invertiti? :)
La sintassi e' questa:
array[i][j]
e si espande in 
*(array+i) + j
Accedere alla posizione 4000 di un array di 300 statisticamente ha buona 
possibilita' di segnalarti un errore :)
-- 
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: djgpp

Ma funzionoa sotto xp? a me piacerebbe usare l'editor rhide...
mo non sono riuscito a configurarlo.
grazie.

[...]
... guarda sul sito 
delorie.com
 , deve esserci qualche pezza
software, se non sbaglio.fai una ricerca sul  sito e su google .
Ciao


Newsgroup: it.comp.lang.c
Titolo: Formato scanf

Ho visto dalla documentazione che scanf come printf, permette di specificare
il formato dei dati.
La documentazione che ho trovato, riporta :
    scanf(formato,argomenti);
        -Formato : %[flag][ampiezza][.precisione]tipo
Volendo limitare il numero di caratterri immissibili (es 10), dovrei passare
a scanf una cosa tipo "%10s" giusto ? Oddio proprio giusto no visto che non
se lo pippa per niente.
E' possibile dire a scanf il numero di caratteri da accettare o devo
gestirlo io a mano?
E' possibile leggere un'ipotetica stringa lunga x oppure si deve per forza
prevederne la sua grandezza massima e riservargli da subito lo spazio
necessario?
Scusate le domande da niubbone!!!!!!!!!!!!!!!!!!!!!

 se lo pippa per niente.
sono anche io niubbo totale ma non dovrebbe essere %10c ?

> sono anche io niubbo totale ma non dovrebbe essere %10c ?
Puodarsi, ora ci provo. Grazie per il suggerimento.

 a scanf una cosa tipo "%10s" giusto ?
ASSOLUTAMENTE NO!!!!
Scanf interpreta una stringa (%s) come la sequenza di caratteri che termina con uno spazio
se tu vuoi una stringa di dimensione fissa (es 10 caratteri) devi specificare %10c
fai però attenzione ad una cosa: in questo caso la stringa non ha il terminatore (\0)
e se vai a stamparla puoi avere effetti indesidertai
esempio
char sRiga[11]
memset(sRiga.0,11);
scanf("%10c",sRiga);
in questo modo non ti devi preoccupare di inserire il terminatore DOPO
altrimenti dopo lo scanf metti un sRiga[11]=0;
e non hai bisogno del memset
Newsgroup: it.comp.lang.c
Titolo: Compilatore

Ciao, qualcuno mi sa dire dove posso trovare un compilatore free per
iniziare?
Grazie

iniziare?
www.delorie.com/djgpp/

 iniziare?
Scaricati il DJGPP all'indirizzo 
www.delorie.com
.
EMG

su 
volftp.mondadori.com
 cerca Dev-c++
--
davser - 
dav...@libero.it
 - 
http://davser.cjb.net

su dev di aprile c'č:
- borland c++ 5.5 (una pacchia)
- gnu (questa volta c'č sul serio)
- borland builder 3
che vvoi di piů?

Newsgroup: it.comp.lang.c
Titolo: sorgenti librerie standard

.... Dove posso trovarli? Confesso che sui vari siti Linux sono
impazzito perché immensi e non sono riuscito a orientarmi. Esiste un
sito dove posso trovare, appunto, i sorgenti delle librerie
standard? In particolare, dovrei "riciclare" alcune funzioni per un
mio interprete in pseudo-c.
    Grazie a chi vorrŕ rispondermi
    Corrado Bonuccelli

mio interprete in pseudo-c.
Il DJGPP possiede tutti i sorgenti della libreria.
www.delorie.com/djgpp/
--
Andrea Laforgia (
andrea_...@bigfoot.com
)
-----------------------------------------------------
"There is nothing better for understanding a kangaroo
 than seeing it jump." [D.Grune, C.J.H. Jacobs]

    GRAZIE, il sito č una bomba e.... non lo conoscevo proprio!
    Corrado


 >
Se ti interessano i sorgenti di tutto quello che puoi scaricare del
djgpp, trovi tutto sul cd di DEV di aprile.
--
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it

    Grazie tantissime anche a te, ma cos'è questo 'DEV'????
    Corrado


 
E' una rivista, la trovi in molte edicole, mensile, a mesi alterni
allegano un cd. Ci sono spesso cose interessanti.


Newsgroup: it.comp.lang.c
Titolo: Lista concatenata

Grazie a Tutti Voi per le precedenti risposte.
Ho scritto questo codice per concatenare due nodi ma non funziona.
Sapete dirmi perche'?
#include <stdio.h>
#include <stdlib.h>
struct prova{
char nome[15];
struct prova *avanti;
};
typedef struct prova PROVA;
typedef PROVA *PROVAPTR;
int main ()
{
   int i;
   PROVAPTR primo,secondo,vis;
   primo=malloc(sizeof(PROVA));
   printf("Primo ?--> ");
   scanf("%s",primo->nome);
   secondo=malloc(sizeof(PROVA));
   printf("Secondo ?--> ");
   scanf("%s",secondo->nome);
   primo->avanti=secondo;
   secondo->avanti=NULL;
   printf("La lista e':\n");
   while(vis!=NULL){
         printf("%s --> ",vis->nome);
         vis=vis->avanti;
   }
Grazie a Tutti.
Sergio

    }
Senti, in fretta senza provarlo mi sembra che tu stia usando vis senza
averlo inizializzato.
Se come penso vis serve per scorrere la lista e visualizzarla... allora
penso che tu voglia un:
vis=primo;
appena prima del while().
Se e' tutto qui significa che ci potevi anche arrivare da solo ;-)
Tommy
Newsgroup: it.comp.lang.c
Titolo: Help programmino semplice

Ciao scusate, avrei bisogno di creare un programma sdi questo tipo:
 main()
 {
     int i;
     for(i=1;i++;i<10);
 execute (Process);
 }
 L'algoritmo sopra descritto non deve fare altro che eseguire un ciclo di
tot
 "secondi" per ritardare l'esecuzione di un processo.
 Il mio problema è che uso l'ambiente microsoft visual c++ e provando con
 shellexecute ho dei problemi perchè non so come usarla.
 Qualcuno di voi potrebbe darmi una dritta?
 Grazie ancora per la disponibilità
 Ross
--
Togli NOSPAM e .invalid dal mio indirizzo
e-mail per scrivermi

  "secondi" per ritardare l'esecuzione di un processo.
Esiste un modo portabile a condizione di usare questo timer che sfrutta
intensamente la CPU.
<code>
#include <time.h>
void suspend(int nsec) {
    time_t t1, t2;
    for(t1=time(NULL),t2=t1; difftime(t2, t1) < nsec; t2=time(NULL));
}
int main(int argc, char *argv[])
{
    suspent(10);
    system("comando");
}
</code>
Un modo migliore ma non portabile per gestire il ritardo e' la funzione
sleep()... controlla sotto il tuo sistema se ti viene fornita e che
parametro accetta (secondi o microsecondi).
Altrimenti spostati su un gruppo di programmazione per windows e chiedi li
come usare la ShellExecute :)
-- 
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: Si può fare ?

Domanda forse stupida ma se si può mi risolvo un po' di problemi
mi domandavo se presa una matrice allocata dinamicamente era possibile
copiare una riga e una colonna su un altra senza effettuare cicli ma 
solamente riposizionando dei puntatori
si può ?
ReDiCuori
-- 
-- 
L'uomo non sa perchè si innamora, l'uomo viene travolto e basta
---------------------------------------------------------
www.giordanoemilio.altervista.org
---------------------------------------------------------
www.securitygroup.it
Società di servizio che opera nel campo
della sicurezza aziendale
---------------------------------------------------------
www.pascallike.too.it
http://utenti.lycos.it/pascallike
il sito sulla programmazione pascal
sorgenti, tutorial ed utility
------------------------------------------------------------
www.treves-srl.com
Libreria Internazionale Treves
Via Toledo 249/250 Napoli
------------------------------------------------------------
www.alphalibri.com
Vendita ingrosso di libri
Via S.Anna dei Lombardi 10 , Napoli
------------------------------------------------------- 

 solamente riposizionando dei puntatori
Che intendi per "riposizionando" ? In ogni caso, se non compi dei cicli,
non stai parlando di "copia".
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

Newsgroup: it.comp.lang.c
Titolo: Diversificare Puntatore

Salve a tutti,
ho un vettore di puntatori a char che riempio tramite una funzione 
inserci purtroppo la mia funzione che richima inserisci passa sempre lo 
stesso indirizzo di memoria cambiando il valore contenuto in esso.
Quindi il vettore conterra' sempre lo stesso elemento.
esempio:
char *elenco[MAX];
void inserisci(int i,char *elemento){
   elenco[i]=elemento;
}
int main(){
   char *el;
   scanf("%s",&el);
   inserisci(4,el);
}
Qualcuno sa comse risolvere senza stravolgere l'idea?

 Qualcuno sa comse risolvere senza stravolgere l'idea?
Qual'è l'idea?
Se vuoi mettere delle stringhe in un array di stringhe, devi creare tante 
stringhe. Quindi le possibilità sono due: passi alla funzione inserisci 
delle stringhe diverse, oppure la funzione inserisci memorizza in elenco una 
copia della stringa passata.
Nel main devi allocare "el" e poi non usare scanf. Fai un main più 
interessante e completo, così magari si vede dove ti si presenta l'errore.
Tra l'altro perché limiti il numero massimo di stringhe nell'elenco?
-- 
Costantino Grana 

Ti ringrazione per la tua attenzione.
Mi spiace se non mi sono spiegato granche', ma il problema era 
abbastanza complesso da spiegare interamente in un thread.
Comunque ho risolto allocado nuovamente la variabile ad ogni inserimento.

Newsgroup: it.comp.lang.c
Titolo: Parallela

Avete un buon sorgente per pilotare la parallela?
                                                                    Alex

 wrote in message 80sgpj$ohr$4...@nslave2.tin.it...



Per il linguaggio mi sembra chiaro (qui siamo in it.comp.lang.c); per il
sistema operativo azzardo win9x, visto che Alex usa Outlook.
-- 
 Ciao, Luca.
 Reply to 
luca....@tiscalinet.it

Newsgroup: it.comp.lang.c
Titolo: Lettura e scrittura su file (ps, abbiate pietà rispondetemi!!)

Abbiate pietą č da poco che mi sono avventurato nel linguaggio c
ho bisogno di aprire un file in lettura e rilevato l'inizio di una frase
tipo #fine
all'interno di un ciclo while ho inserito la seguente porzione di codice.
if (fgets(line, 99, fp1) == '/#f') fputs (line2, fp2);
   fputs(line,fp2);
Mi da  i seguenti errori:
- caracter constant must be one or two caracters long
- cannot convert int to char
Aiutoooooo!!!

 Abbiate pietà è da poco che mi sono avventurato nel linguaggio 

  Ovviamente.
  Le stringhe, in C, sono vettori di caratteri e, quindi, non possono
essere confrontate come i tipi scalari. Inoltre, le stringhe letterali
sono delimitate dal carattere "apice doppio" ("). Infine, le costanti
letterali carattere, delimitate dal carattere "apice singolo" (') sono
considerate interi e non possono (potrebbero) essere confrontate con un
puntatore a carattere.
  Questa e` la spiegazione degli errori. Al di la` di cio`, operare
contemporaneamente in lettura e scrittura sullo stesso flusso e` foriero
di comportamenti inaspettati.
  La soluzione e`:
<code>
	FILE *input,*output;
	/* streams opening */
	while(fgets(line,99,input)) {
		if(!strcmp(line,"/#fine")	fputs(line2,output);
		else				fputs(line,output);
	}
	/*
	 * Put here the code to substitute the original file with 
	 * the new one...
	 */
</code>
  La funzione strcmp() e` dichiarata in <string.h>. Se vuoi, come credo,
confrontare solo i primi caratteri della stringa /line/, perche` reputi
che questi siano i piu` significativi, allora userai strncmp(),
dichiarata sempre in <string.h>.
	Alla prossima,
		Marco

 Abbiate pietà è da poco che mi sono avventurato nel linguaggio c


Newsgroup: it.comp.lang.c
Titolo: Mi serve un grande aiuto

Ciao a tutti.
Vi premetto che inizio solo ora a programmare in C e avrei bisogno subito di
una mano: dovrei implementare il gioco Forza quattro in C e non so da dove
iniziare.
Chi puň aiutarmi??????
Claudio

 iniziare.
Per esempio, da Google: a quest'URL trovi un'esemplificazione della 
teoria dei giochi che ti tornera` certamente utile
 
http://www.conmet.it/sharkey/TRISWEB.HTM
Di poi, sviluppa il tuo algoritmo, prova ad implementarlo ed, 
eventualmente, torna qui con le tue domande.
Alternativamente, conduci, sempre su Google, una ricerca piu` 
approfondita di codice sorgente che potrai spacciare per tuo...
-- 
Baci,
Mony

Grazie

 
http://www.conmet.it/sharkey/TRISWEB.HTM
mi interessa ma il l'http nn esiste!!
why?


 mi interessa ma il l'http nn esiste!!
Ce l'ho aperto in questo momento nel mio Navigator. Non so cosa dirti...
-- 
Baci,
Mony
Newsgroup: it.comp.lang.c
Titolo: domanda cretina

ciao a tutti, mi son letto il famoso Kernighan & R., e poi mi son messo
a fare qualche esercizietto... uno dei quali, il fattoriale mediante
ricorsione. Ma non e' questo il problema,
il programma gira. Ma c'e' una cosa che non mi piace:
ho cercato di far decidere all'utente se continuare (e quindi fornire un
nuovo numero di cui calcolarne il fattoriale) oppure se uscire. Come?
Premendo il carattere 's' per continuare, o un carattere qualsiasi per
uscire. Solo che poi, se si decide di continuare, il programma legge il
numero, e l'utente dovrebbe cancellare tornando indietro (freccina <-
per capirci) la lettera 's' appena digitata e poi scrivere il numero....
come posso ovviare a questo problemino? E, in pratica, come si possono
fare dei menu decenti, senza questi problemi?
Allego qui sotto il programmino (cosi mi dite se e' scritto proprio male
male, in vista di un esame i commenti fanno molto comodo) e tanti
ringraziamenti per la vostra pazienza,
salutoni, Alberto.
-----
#include<stdio.h>
#include<ctype.h>
#include<conio.h>
#include<stdlib.h>
int main(int argc, char **argv)
{
long int fattoriale(long int);
long int numero;
char c='s';
while (c=='s')
    {
    printf("Inserisci il numero: \n");
    scanf("%d",&numero);
    printf("\n");
    printf("%d! = %d\n",numero,fattoriale(numero));
    printf("Premi [s] per continuare\n");
     c=getch();
    }
   return 0;
}
long int fattoriale(long int num)
{
   if ((num==0) || (num==1)) return 1;
   else return (num*fattoriale(num-1));
}


Prova con una scanf (l'ho sostituita a getch)

     scanf("%d",&numero);
Siccome numero è dichiarato come long devi scrivere
scanf("%ld",&numero);
e questo vale anche nella printf().
Per il resto non mi sembra ci siano problemi.
EMG

Per il resto non mi sembra ci siano problemi.
Volevo solo sottolineare che l'uso di una funzione fattoriale come ricorsiva
talvolta puo' essere un po' inefficiente.
Meglio implementare un ciclo.
Andrea Laforgia
---------------

 l'inserimento di un nuovo numero.
invece purtroppo con il mio compliatore (borland c++ builder3 standard) quando
compare il prompt per l'inserimento del nuovo numero, alla destra del prompt
rimane la lettera 's' anziche' nulla...
TNX, Alberto

...

Non conoscro il C++ Builder 3 ma con DJGPP funziona perfettamente. Potrebbe
dipendere dal mix fra stdio e conio (e da un comportamento anomalo delle
tue lbrerie). La getch() e' una routine di conio che legge un carattere
senza echo e non richiede l'ENTER. Puo' darsi che per qualche baco di
libreria ti ritrovi il carattere s nel buffer di output (che viene
flush()ato quanto fai la printf). Prova a togliere stdio e usare solo
conio: cprintf(), cscanf(). Oppure fai alla rovescia: invece di conio usa
solo stdio, cioe' sostituisci la getch() con getchar(), ma fai attenzione:
getchar() aspetta sempre l'ENTER, che, se non lo rimuovi dal buffer (la
getchar() preleva solo il primo carattere), verra usato dalla routine di
input succesiva.
Newsgroup: it.comp.lang.c
Titolo: [c] Piccolo problema con puntatori di file

Salve...
Sono un nuovo utente del gruppo... ma mi sa che nei prossimi giorni vi
inonderò di domande :D:D
Programmo usando linux Xubuntu aggiornata e compilo con gcc.
Ho questo problema: Voglio mettere un file in un vettore di caratteri.
Il problema è che quando leggo il file mi trova solo caratteri di EOF
(li legge come se fossero -1). Cosa posso fare? Grazie.
#include <stdlib.h>
#include <stdio.h>
#include <ctype.h>
#include <string.h>
	char *c;
	FILE *in;
void leggi ()
{
	int i=0, k=0;
	char p;
	in= fopen("input.txt" , "r");
	for ( ; getc(in)!= EOF ; ) i++;
	c=(char *) malloc( i * sizeof(char));
	while ( k!=i ) {
		c[k++] = fgetc(in);;
	}
	for(i=0; c[i]; i++)	printf("%c", c[i]);
}
int main () {
	leggi();
	printf("\n");
return 0;
}
aggiungo il file...
6 0 5
3 1 1 2 2 4 6
2 3 1 4 3
1 3 2
1 4 1
1 5 1
0

 	for(i=0; c[i]; i++)	printf("%c", c[i]);
Devi usare le funzioni fseek() o rewind() per riportare il puntatore 
al file all'inizio.
$ man rewind fseek
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: AIUTO! piccolo programmino con c

 ciao a tutti avrei un piccolo problemino...vorrei crearmi un piccolo
programmino che legga l'input da tastiera e trasferisca tutto l'output su di
un file di testo (preferibilmente excel se si puo')...cioe' ho piccole
esperienze di prgrammazione con gli script di shell in linux ma nn riesco ad
orientarmi con il c...vorrei che se ad esempio al prompt "inserisci il tuo
nome" e io scrivo andrea e poi che ne so' "quanti anni hai" mi scrivesse gli
input in riga e ad ogni uso successivo me li accodasse su una riga diversa e
cosi' via ma nn so proprio da dove partire...se mi poteste dare un aiutino
ve ne sarei grati..grazie, ciao
andrea
--------------------------------
Inviato via 
http://arianna.libero.it/usenet/

 andrea
google -> "tutorial C"
scusa, ma di fronte ad una richiesta del genere, ti si puo' dare solo 
una risposta come questa :-(
-- 
Mat/tia Belletti - Undergraduate student @ 
cs.unibo.it
ICQ: 33292311    - email: 
mbel...@cs.unibo.it
IRC: RedGlow     - site(s): 
http://mbellett.web.cs.unibo.it/
Jabber: RedGlow  - Linux registered user 299762 @ machine 213003
Newsgroup: it.comp.lang.c
Titolo: problema di pipe

Salve a tutti, ho un duccio che gradirei risolvere quindi ve lo pongo.
Ho 2 processi (P1 e P2) che girano su una macchina, P2 è figlio di P1
Ad un certo punto P1 apre una pipe, e vuole passare il fd della pipe al
figlio,
la cosa è fattibile?
riesco (ovviamente) a fare il contrario,ovvero creare la pipe e forkare
ma come l'ho messa io si puo' fare?
c'e' qulache workaround per gestire la cosa?
grazie
fabio

 c'e' qulache workaround per gestire la cosa?
socket, named pipe e un ng piu' appropriato.
C:\>iao Angelo
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 figlio, la cosa č fattibile?
La questione non ha a che vedere con il linguaggio C, che č l'argomento di
questo newsgroup. Dovresti spostarti in un newsgroup in cui si parli di svluppo
in ambiente *nix.
La risposta, comunque, č: sě. In alcuni ambienti Unix-like (ad es, Solaris,
SCO, BSD e Linux) due processi (anche non imparentati) possono scambiarsi un
file descriptor tramite sendmsg/recvmsg su socket AF_LOCAL (aka AF_UNIX).
Vedi ad esempio:
http://publib16.boulder.ibm.com/pseries/en_US/aixprggd/progcomc/skt_comms.htm
Come sempre, GIYF!
Max

grazie per le risposte,
ho postato anche in altri gruppi *nix ma ho ricevuto risposta solo qui
domanda troppo idiota?


Sai che il messaggio letto all'italiana potrebbe fare pensare non solo che
sei pesantemente ot, ma anche censurabile?
:-)))
Giacomo


Ciao,
so che anche la risposta è OT ma esiste un WA. Non conosco quale SO tu stia
usando ma in molti esistono i "File Pipe" e quindi non ti resta che aprire
quello stesso "special-file". Vedi "mknod()" del tuo SO.
Un saluto.
Newsgroup: it.comp.lang.c
Titolo: Far partire un programma in DOS

Una mia amica mi ha chiesto come si fa a far partire un programma sotto
DOS.
Il programma l'ha fatto lei in DOS e l'ha salvato in formato ".c".
Premettendo che per me è arabo, come deve fare?
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 
Start->Programmi->Accessori->Prompt dei comandi
gcc -o programma.exe programma.c
---------------
www.vettigli.tk

 gcc -o programma.exe programma.c
Ho provato sia sul mio che sul suo e dice: gcc comando non valido... ecc
:(


 Ho provato sia sul mio che sul suo e dice: gcc comando non valido... ecc
Se non installi il gcc, difficile che tu riesca a compilare.
Forse prima di buttarvi in programmazione, dovreste imparare i concetti 
fondamentali.

 Premettendo che per me è arabo, come deve fare?
Dopo questa premessa come si fa ad aiutarti??
Se per te è arabo, come si fa a spiegarti la differenza tra codice sorgente
e codice macchina? 
Cioè, io potrei anche dirti:
"guarda che il file .c è solo il sorgente del programma, per eseguirlo
dovresti compilarlo, con un compilatore C tipo gcc, poi eseguirlo"
Però mi sa che: 
1- non sai cosa sia un linguaggio di programmazione
2- non sai cosa sia un compilatore, cosa fa e come lo si usa
3- non sai cosa sia il C
etc etc
Per alcune cosa l'informatica è come la matematica: si costruisce a strati,
senza le basi non si va avanti.
ciao domenico

 ciao domenico
A dire la verità avevo fatto un po' di c++ a scuola, anche se spesso ero
insufficente!
E poi il lavoro non è per me, è per una mia amica che ha fatto 5 anni di
informatica all'università.... in effetti mi chiedo cosa le insegnassero!


 Keeper182 wrote:


http://www.newsland.it/nr/browse/it.comp.lang.c/22049.html


 
http://www.newsland.it/nr/browse/it.comp.lang.c/22049.html
?

 ?
Eh eh eh :D
Non avevo voglia di riscrivere la stessa cosa che ho risposto a
quell'altro!:D


 quell'altro!:D
Potevi evitare di scriverla.
Newsgroup: it.comp.lang.c
Titolo: [OT]Nuovo forum sulla programmazione!

Buongiorno a tutti!
Vorrei segnalarvi un forum sulla programmazione che ha aperto da pochi
giorni!
E' un mio esperimento e ci terrei che si animasse un po... con una serie di
domande o consigli che vorrei tutti quanti facessimo!
L'intenzione è di non parlare solo di programmazione vera e propria, ma
anche di tecniche di progettazione!
Altri argomenti inerenti sono, comunque, in fase di attivazione!
Accetto suggerimenti e quanto altro!
                                                                            Pay
PS: Spero che questo mio messaggio non venga scambiato per una qualke forma
di pubblicità o spam...vorrei solo creare una comunità virtuale su argomenti
ke possono interessare a tutti noi!
--------------------------------
Inviato via 
http://usenet.libero.it


auguri per l'apertura.....
ma deve essere qualcosa di particolarmente esclusivo dato che non viene
comunicato il link
oppure è una forma originale per evitare accuse di SPAM?

Scusate la PICCOLISSIMA distrazione, se cosě la si puň kiamare!
L'indirizzo č 
http://www.ilGame.it/
 !
Spero di avere recuperato in calcio d'angolo... vi aspetto!
                                                                                 Pay

Newsgroup: it.comp.lang.c
Titolo: Elaborare Wave file

In Matlab abbiamo l'istruzione waveread.........ma in C,c'è qualcuno che ha
scritto qualcosa di analogo......cioè una funzione che dal file .wav mi
estragga Frequenza di campionamento,Bit di quantizzazione,campioni?
Oppure qualcuno sa dove posso trovare qualcosa?
TIA

se vuoi fare un lavoro ben fatto puoi leggerti le specifiche del wave su
www.wotsit.org
altrimenti puoi cercare qualche libreria.. forse anche le SDL lo fanno, ma
non mi pare le consiglino molto per il suono...

Newsgroup: it.comp.lang.c
Titolo: AIUTO: semplice funzione

Molto probabilmente x voi e' una fessseria questo problema che invece
x me e' una vera e propria ossessione.
Qualcuno potrebbe gentilmente aiutarmi risolvendo questa consegna?:
Scrivere una funzione ricorsiva che, data una lista di valori interi,
elimini dalla lista tutti gli elementi dispari.
Grazie a tutti x l'attenzione e le eventuali risposte.
--
:-P
PZ "I'm a slave for you" & "Overprotected"

elimini dalla lista tutti gli elementi dispari.
<CODE>
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct list_item_t {
               int i;
               struct list_item_t *prev, *next;
        } list_item, *p_list_item;
void insert_in_list(p_list_item prev, 
                    p_list_item *head, 
                    int i)
{
     if (!*head)
     {
        *head = malloc(sizeof **head);
        (*head)->i = i;
        (*head)->next = 0;
        (*head)->prev = prev;
     }
     else
       insert_in_list(*head, &(*head)->next, i);
}
void remove_odds(p_list_item *head)
{
      if (*head)
      {
          remove_odds(&(*head)->next);
          if (((*head)->i % 2) != 0)
          {
             p_list_item p_next = (*head)->next;
             free(*head);
             *head = p_next;
          }
      }
}
void write_list(p_list_item head)
{
     if (head)
     {
        printf("%d; ", head->i);
        write_list(head->next);
     }
     else printf("\n");
}
int main()
{
    int i;
    p_list_item head = 0;
    srand(time(0));
    for (i = 0; i < 10; i++)
    {
        insert_in_list(0, &head, rand() % 30);
    }
    puts("lista originale:");
    write_list(head);
    remove_odds(&head);
    puts("\nlista senza dispari:");
    write_list(head);
    return 0;
}
</CODE>
-- 
Andrea Laforgia
#exclude <windows.h>

               struct list_item_t *prev, *next;
                                    ^^^^
Non serve, ovviamente.


HO GIA' RISOLTO
Grazie lo stesso a tutti


[cut]
Grazie ho gia' risolto da solo, anche xche' tanto usiamo cose diverse.
grazie cmq x la velocita' e la disponbilita'.
PZ

Newsgroup: it.comp.lang.c
Titolo: codice c offuscato

Ciao a tutti,
mi sono da poco interessato al codice c offuscato e mi piacerebbe
approfondire il discorso...qualcuno conosce dei siti di appassionati
in italiano nei quali approfondire il discorso, magari con qualche
esempietto ben spiegato?La home page del concorso 
www.ioccc.org
 la ho
gia' visitata...
PS sono ben accetti anche degli esempietti ;)
Tutto e' nato quando ho trovato in un gruppo il seguente programmino:
#include <stdio.h>
int main(){for(int
i=0;putchar(i++[""
"J(wf!cffo!tp!mbn"
"f!up!btl!uif!tpm"
"vujpo!up!nz!ipnf"
"xpsl!po!VTFOFU"]-
1)!='T';);}///////
Veramente bello!!!
Vi ringrazio anticipatamente tutti.
"La cosa peggiore riguardo alla censura è XXXXXXXXXXXX"
						-- R.A. Wilson --

 Veramente bello!!!
mmm
se non mi sbaglio e' una specie di rot1 (c' e' quella stringona e tutto
-1) il tutto messo in un ciclo for, vero?
allora e' meglio il mio ;P
-- 
char c;main(int argc,char *argv[]){for(c=0;c["]!=^'\0';c++)c=--c/c["];
write(c-~-c,c+++"-B\040e\n",-~c-c))write(-~c-c,c+"-\nyZD_?!_",c-~-c);}

write(c-~-c,c+++"-B\040e\n",-~c-c))write(-~c-c,c+"-\nyZD_?!_",c-~-c);}
Ok, niente da dire ;)
Ora ci darò un'occhiata e vediamo se riesco a cambiargli scritta ;P
Ciao, 
Roberto

 Ora ci darò un'occhiata e vediamo se riesco a cambiargli scritta ;P
buon divertimento!
se vuoi un consiglio, leggilo con un editor di evidenziazione sintassi ^^;
-- 


 se vuoi un consiglio, leggilo con un editor di evidenziazione sintassi ^^;
Già fatto...Non vorrei ti dispiacesse se ti personalizzo il
"giochetto" ;)
char c;main(int argc,char
*argv[]){for(c=0;c["ss]!=^'\0';c++)c=--c/c["];
write(c-~-c,c+++"~B\040oy;\n234dfasfdfaf",-~c-c))write(-~c-c,c+"~\nyRB
P\n_?!_Ciao a tutti!!!",c-~-c);}
Magari lo posso usare come firma, personalizzando il ciao a tutti ;)
Grazie e saluti,
Roberto
-----------------------------------------------------
Who is General Failure and why is he reading my disk?

 Magari lo posso usare come firma, personalizzando il ciao a tutti ;)
gia' che stai, alla fine della penultima riga mettici un \n e togli l'
invio, che il gcc mi da un warning
-- 


Newsgroup: it.comp.lang.c
Titolo: Data e ora in TurboC

Ciao Ng
Come faccio a visualizzare la data e l'ora in turboc
che cambia indipendente dal programma in esecuzione ?
Ricordo di aver visto qualcosa con gli interrupt, ma non
ricordo bene...
chi mi puņ aiutare ?
ciao
Maurizio

 che cambia indipendente dal programma in esecuzione ?
IL post e' OT,comunque prova a vedere con l'int 1CH mi sembra.
Ivan Molella
Newsgroup: it.comp.lang.c
Titolo: domanda:

Forse sono OT, ma rischio lo stesso.
Nessuno ha due linee di codice (o di doc) per leggere direttamente il
microfono?
Mi serve un generatore di numeri davvero casuale, e credo che leggendo
l'uscita del convertitore (se e' possibile) qualcosa di buono si possa
ottenere. Male che va mi metto a urlare nel microfono..;-)
Marco


Cavoli, questa non l'avevo mai sentita! Davvero spettacolare :-D
-- 
 Reply to 
luca....@tiscalinet.it
 UIN : 43385135

 
bah... non mi sembra una grande idea...
bye! ;-)
-- 
Emanuele Cesena                 
http://www.penguinpowered.com/~ecesena
ece...@penguinpowered.com
                 Attenti all'antispam NOSPAM
"Quando c'e' bisogno di toccar ferro o legno, ci si accorge che il mondo e'
fatto di alluminio e vinile", legge di Flugg

sistema operativo, please... per Linux si' :-)
Right. DOS.
Marco


sorry, then... non immagini quanto tempo ho perso per cercare di far
andare il mic sotto Win/Dos... ne ho perso tanto che ho fatto tempo a
cambiar os :-))
-- 
Emanuele Cesena                 
http://www.penguinpowered.com/~ecesena
ece...@penguinpowered.com
                 Attenti all'antispam NOSPAM
"Qualsiasi informazione che comporti un cambiamento nel progetto, sara'
trasmessa al progettista dopo -e soltanto dopo- che tutti i disegni sono
stati completati", prima legge delle Modifiche

 stati completati", prima legge delle Modifiche
  "Il progettista deve soddisfare le richieste del capo a meno che queste
  non contrastino con la prima legge", seconda legge delle Modifiche
-- 
+-------*Le tre leggi del buon utente*-------+
|============================================|
+-1ų:Un utente non puo' nuocere al suo PC ne'|
|    tramite la sua colpevole inerzia permet-|
|    tere che il suo PC subisca un danno.    |
+-2ų:Un utente deve soddisfare le richieste  |
|    di sistema a meno che queste non contra-|
|    stino con la prima legge.               |
+-3ų:Un utente deve pensare ai suoi interessi|
|    installando il software di cui ha biso- |
|    gno a meno che questo non contrasti con |
|    la prima e la seconda legge.            |
|============================================|
+-Legge Zero---------------------------------+
|Un utente non puo' installare Windows, o cau|
|sera' la fine del suo PC e la rovina dell'u-|
|manita' !!!! Cobra(
franc...@iol.it
)      |
|                  (
maraf...@xoommail.com
)|
|============================================|

 
aggiunta :-)
-- 
Emanuele Cesena                 
http://www.penguinpowered.com/~ecesena
ece...@penguinpowered.com
                 Attenti all'antispam NOSPAM
"Cambiare le cose e' l'essenza del comando; cambiarle prima di chiunque
altro e' creativita'", prima legge di Jay sul Comando
Newsgroup: it.comp.lang.c
Titolo: nuovo standard ?

E' vero che recentemente e' stato definito un nuovo standard per il
linguaggio C ?
Ciao

 linguaggio C ?
Esiste una prima versione di C concepita dai creatori del linguaggio e negli
anni sono avvenute 2 successive standarizzazioni, la prima nota
(sinteticamente) come C89 (pressapoco quella descritta nel
Kernigham&Ritchie) e l'ultima come C99 (a cui i compilatori man mano si
adeguano, v. per esempio il GCC che dalla versione 3 si sta portando verso
una situazione di aderenza a quest'ultimo standard).
Questa e' in sintesi la situazione, il fatto che sia stato definito un nuovo
standard, dipende da qual'era l'ultimo di cui eri a conoscenza :)
-- 
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."

standard, dipende da qual'era l'ultimo di cui eri a conoscenza :)
Conosco quello che chiami C89. Sai quali sono le novita' della versione
C99 ?
Il GCC e' l'unico compilatore che per ora aderisce a tale standard ?
Ciao

http://linux.ing.uniroma1.it/ita/proj/introC/html/node71.html
Luca


   .~.      xin\@IRCNet (mostly xin\aWAy 24/7 ghgh)
   /V\      Email: NOSPAM!
  // \\     Anemir,Alarik,Marty,Araon,Balimir@ClessidraMUD - CdL -
 /(   )\    ICQ UIN: 63088554
  ^`~'^     "Somewhere inside my childhood witnessed my heart die" -
2Pac
-- 
/"\   
\ /    ASCII Ribbon Campaign
 \     Against HTML Mail and News
/ \  
--
"A coward dies a thousand deaths a soldier dies but once..." - 2Pac

 Il GCC e' l'unico compilatore che per ora aderisce a tale standard ?
Boh, di certo cerca di aderirci:
http://gcc.gnu.org/gcc-3.3/c99status.html


xinit wrote:
Please, rispondi sotto il testo quotato, non sopra :)


 
ok sorry ma son nuovo e si vede :)
Luca
--


xinit ha dato questo link:
http://linux.ing.uniroma1.it/ita/proj/introC/html/node71.html
leggendo un pochino fra le novità del c99 ho trovato questa sulla
dichiarazione di una variabile in un'istruzione for:
Si ha la possibilità di dichiarare varibili all'interno della porzione di
codice dedicata all'inizializzazione del ciclo
for (i=0; i <= 15; i++) {
        printf("Incremento i\n");
		}
		printf("Ora i non esiste più\n");
ora vorrei capire, è giusto quello che c'è scritto li?
non doveva essere qualcosa tipo:
for(int i=0;i<=15;i++) ?

 ok sorry ma son nuovo e si vede :)
Gia`, anche perche` hai _due_ sign di troppo ;-)
-- 
 Ciao, Bianco.                         Reply to luca.bianco (at) 
tiscali.it
|--------[Powered by Debian GNU/Linux Sarge - 2.4.19 - AMD K6-200]--------|
|------------[Linux Registered User #287769 - Machine #169192]------------|


Nello standard C99 le variabili devono essere dichiarate *prima* di
essere utilizzate... quindi l'istruzione 
for ( int i = 0; i <= 15 ; i++)
    ecc ecc
se provi a darla in pasto al tuo compilatore (ad esempio gcc) ti dara'
errore (addirittura ti dice: 'for' loop initial declaration used
outside C99 mode)
Forse e' scritto male nella guida che stai leggendo...prova a
confrontarlo con altri
Ciao, 
Maurizio
Newsgroup: it.comp.lang.c
Titolo: copiare files, domanda

Mettiamo che io volessi copiare un files con fgtes mettendo un buffer di 64K
(non ho assolutamente provato e sono abbastanza niubbo, perciň se c'č un
modo piů veloce fatemelo sapere),
andando poi a vedere la posizione del puntato nel file mi direbbe che si č
fermato al 64000esimo byte la prima volta giusto?
Mettiamo ora perň che volglia tornare in dietro di 64k riprendere i dati,
rimetterli in un altro buffer e controllare se č uguale al primo...
Ho visto nelle funzioni che esiste fseek....
Ma el campo long cosa devo mettere? 64000? e poi, altra domanda...Buffer in
caso di file binario andrebbe aumentato di uno per il carattere NULL?
--
Andrea Richiardi
aka
KapitanFiNd-uS
UIN ICQ: 106701708
EMAIL: ari...@NOSPAMinwind.it

 caso di file binario andrebbe aumentato di uno per il carattere NULL?
Function: int fseek (FILE *stream, long int offset, int whence)
nel campo offset dovresti mettere lo spostamento rispetto alla posizione di
partenza che passi a whence. I possibili valori di whence sono :
SEEK_SET -> Inizio del File
SEEK_CUR -> Attuale posizione del puntatore
SEEK_END -> Fine del File
Quindi se il tuo scopo č portare il puntatore all'inizio del file devi solo
scrivere :
fseek(fd,0,SEEK_SET);
come nel piccolo esempio che ti ho scritto sopra.
Ciao
Wezzy

Newsgroup: it.comp.lang.c
Titolo: [Stupid] Dichiarazione di array di puntatori a funzioni

 Lo so che è una domanda stupida, ma non so come uscirne!


senza parametri. Se ne dichiaro una scrivo:
#include <stdio.h>
void andrea( void )
{
     puts( "ciao" ) ;
}
void valentina( void )
{
     puts( "a tutti" ) ;
}
int main()
{
    void (*afp[2])(void) = { andrea, valentina } ;
    afp[0]() ;
    afp[1]() ;
    return 0 ;
}
--
Andrea Laforgia (UIN 87230455)
----------------------------------------------------------
Non scrivetemi per e-mail, se non richiesto espressamente.
No replies in private e-mail, unless explicitly requested.
----------------------------------------------------------

void* function(void );
Ti stai sbagliando.
Cosi' dichiari una funzione che restituisce un puntatore a void.
un puntatore a funzione si dichiara :
void (*fnptr)(void) ;
