E' sicuramente più chiaro... ma è tutta un'altra cosa da quello che ha postato il nostro amico.
Questa è la stessa cosa, scritta meglio (nel senso dell'indentazione):
In quale caso l'if può diventare vero? Quando il for trova il carattere di newline! In questo caso, infatti, il ciclo termina. Subito dopo si controlla se si è verificata questa condizione. In caso affermativo alla stringa "s" viene aggiunto il carattere di newline (che non viene aggiunto dal cilo!!), si porta sul carattere successivo (alla fine della stringa, quindi) e aggiunge il terminatore di stringa.codice:for (i=0; i < lim-1 && (c=getchar()) != EOF && c != '\n'; ++i) { s[i] = c; } if (c == '\n') { s[i] = c; ++i; } s[i] = '\0';
Questa piccola parte di codice viene spesso inserita in quei programmi che devono leggere sequenze di caratteri (come nei file) dove i terminatori dei dati utili sono EOF e NewLine con la sola differenza che il primo carattere non ha importanza, ma il secondo sì.
Ciao.![]()




Rispondi quotando