Io in genere tolgo il \n in questo modo:Originariamente inviato da Ol3iconfini
Il problema è che fgets() legge fino a \n incluso e quindi lo stampa. Come faccio a leggere la linea fino a \n escluso??![]()
Non uso cose del tipo:codice:char *p; ... if ((p = strchr (buf, '\n')) != NULL) *p = '\0';
buf[strlen(buf)] = '\0';
per un motivo molto semplice: se il buffer è più corto della linea (scenario più che possibile), per leggere l'intera linea ci vogliono più chiamate a fgets ma solo sull'ultimo buffer ritornato c'è il \n. Usando strchr tolgo il \n solo se c'è.

Rispondi quotando