|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: May 2001
Città: Como
Messaggi: 1790
|
fscanf che non funziona
non riesco a capire perchè con questo frammento non riesco a stampare a video il file:
if (voti[i] >= media) { fprintf(fp,"%d\n",voti[i]); ++totale; } printf("I voti superiori alla media sono stati %d\n\n",totale); fseek(fp,0,0); while (fscanf(fp, "%d",&stampa)!= EOF) printf("%d\n",stampa); QUESTO FUNZIONA: if (voti[i] >= media) { fprintf(fp,"%d\n",voti[i]); ++quanti; printf("Il %d^ voto (%d) e' stato superiore o uguale alla media\n", i+1, voti[i]); } printf("I voti superiori alla media sono stati %d\n\n",quanti); Ma per quale motivo la scanf non mi scansione niente nel primo caso? Sarà una cazzata ma non trovo la soluzione...
__________________
andreaesposito.com - Sito del pittore Andrea Esposito Trattato con: Alci6000|Fabbry|Asterx|vyper|AliothRaulo|RIGOLO|thefrog|Mammabell|crespo80|rovve|Pot|se7en|yakipolkerule| sanxius|Rospaccio|Maurizio XP|devamrit|g.maverick|fefed|XP2200|h1jack3r|_The Jocker_|Ray|BloodFlowers|DURONMEN|Obrigado |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: May 2001
Città: Como
Messaggi: 1790
|
ho dimenticato di mettere [C] nel titolo,
riferito al linguaggio C.
__________________
andreaesposito.com - Sito del pittore Andrea Esposito Trattato con: Alci6000|Fabbry|Asterx|vyper|AliothRaulo|RIGOLO|thefrog|Mammabell|crespo80|rovve|Pot|se7en|yakipolkerule| sanxius|Rospaccio|Maurizio XP|devamrit|g.maverick|fefed|XP2200|h1jack3r|_The Jocker_|Ray|BloodFlowers|DURONMEN|Obrigado |
![]() |
![]() |
![]() |
#3 | |
Moderatore
Iscritto dal: Nov 2003
Messaggi: 16211
|
Re: fscanf che non funziona
Quote:
EOF è una costante corrispondente a -1, e il valore restituito da fscanf è pari al numero di conversioni di argomenti effettuate: quindi, se non riesce a leggere un valore intero dal file, fscanf(fp,"%d",&stampa) deve restituire 0 e non EOF. Per il resto, potresti sostituire fseek(fp,0,0) con rewind(fp).
__________________
Ubuntu è un'antica parola africana che significa "non so configurare Debian" ![]() Scienza e tecnica: Matematica - Fisica - Chimica - Informatica - Software scientifico - Consulti medici REGOLAMENTO DarthMaul = Asus FX505 Ryzen 7 3700U 8GB GeForce GTX 1650 Win10 + Ubuntu |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Mar 2004
Messaggi: 16053
|
prova a fare una cosa di questo tipo:
... while((stampa=fgetc(fp))!=EOF) ![]() ... un consiglio quando uso la fseek, invece di mettere nell'ultimo parametro la cifra corrispondente all'operazione (inizio,fine o attuale) usa le costanti standard SEEK_END,SEEK_CUR e SEEK_SET tt per questione di portabilità ![]() |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: May 2001
Città: Como
Messaggi: 1790
|
grazie
In effetti con fseek o rewind funziona, il problema ulteriore è che non avevo aperto il file con "w+" ma solo con "w" e fscanf non scansionava niente perchè non poteva leggere da file. Grazie per l'assistenza. ciao
__________________
andreaesposito.com - Sito del pittore Andrea Esposito Trattato con: Alci6000|Fabbry|Asterx|vyper|AliothRaulo|RIGOLO|thefrog|Mammabell|crespo80|rovve|Pot|se7en|yakipolkerule| sanxius|Rospaccio|Maurizio XP|devamrit|g.maverick|fefed|XP2200|h1jack3r|_The Jocker_|Ray|BloodFlowers|DURONMEN|Obrigado |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Mar 2004
Messaggi: 16053
|
cmq non ha senso mettere una fscanf li, è una cosa impossibile, la mia prof di informatica ha dato 2 ad un mio compagno di classe per una cosa del genere
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:03.