View Single Post
Old 23-05-2007, 15:10   #1
santaclause83
Member
 
Iscritto dal: Mar 2006
Messaggi: 131
[C]ciclo di letture da stdin con fgets non termina...?!*?

ho fatto un ciclo per leggere stringhe di grandezza variabile senza limitazioni da tastiera,con le stampe di controllo vedo che la stringa viene letta tutta alla perfezione,ma non riesce ad uscire dal ciclo di lettura e si blocca...è un pò che ci sono sopra non mi spiego perchè,vi mando il frammento...

input-->buffer di lettura grande m
buf-->struttura dati che viene riallocata ogni volta che non riesce a immagazzinare tutti i dati con la prima fgets
i -->per capire se basta una sola malloc o devo riallocare buf


while(fgets(input,m,stdin) != NULL){//lettura comando da tastiera
printf("iterazione %d\n",i);
if(i==0){
strcat(buf,input);
printf("buf = %s\n",buf);
}
else{
buf = realloc(buf,m*(i+1));
strcat(buf,input);
printf("buf = %s\n",buf);
}
i++;
}


fuori dal ciclo faccio una printf di tutto il buffer,ma il programma non riesce ad arrivarci mai....

grazie
santaclause83 è offline   Rispondi citando il messaggio o parte di esso