|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Jul 2007
Messaggi: 28
|
confronto char in C
Ciao a tutti!
sto programmando in C e sono bloccato da ore su un problema apparentemente stupido: il confronto tra char. In particolare, leggo un char da un file testo e voglio confrontarlo con un carattere in un ciclo: del tipo, cicla finchè il carattere letto non è uguale a 'L'. char ch; while((ch=fgetc(nome_file) != 'L') { ........(corpo ciclo)......... } il ciclo non va e cicla all'infinito............. suggerimenti sulla sintassi?? Ah, uso Eclipse per sviluppare il programma! |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Nov 2005
Città: TO
Messaggi: 5206
|
Innanzitutto fgetc ritorna un int, non un char. Il motivo è semplice: per indicare la condizione di end-of-file, ritorna il valore EOF, che è una costante che vale -1. Anche con un char è possibile avere -1, visto che il char è segnato. Ma il valore 0xff (-1 appunto) tecnicamente può essere un carattere valido.
Quindi: int c; while ((c = fgetc (f)) != EOF && c != 'L') { .... } Così esce dal ciclo solo quando si ha EOF o quando il carattere letto è 'L'.
__________________
Andrea, SCJP 5 (91%) - SCWCD 5 (94%) |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 04:24.