Quote:
Originariamente inviato da Tyler Darden
Ora io mi chiedo la getc del secondo if non legge lo stesso carattere del primo if giusto? Ma legge il successivo, è corretto?
|
Esatto, sono 2 letture diverse.
Quote:
Originariamente inviato da Tyler Darden
Per fargli leggere lo stesso caratte dovrei mettere una ungetc prima del secondo if ... ditemi se sbaglio!!
|
Però nel codice hai fatto un else if. Vuol dire che se il primo carattere è '#' il secondo if non viene nemmeno testato. Al contrario, se il primo carattere non è '#', allora non entri nel primo blocco (quindi non potresti fare neanche una ungetc) ma passi al secondo getc.
La soluzione migliore è 1 sola lettura e poi la catena di if (o uno switch, per es.).
c = getc (....);
if (c == .....) { ... }
else if (c == .....) { ... }
.....