mirko ballarini
2023-11-13 21:14:54 UTC
Ciao,
per errore ho scritto una scanf come sotto, ottenendo risultati bizzarri:
while(fscanf(Fin, "%s, %d, %d", stringa, &matricola, &voto)!= EOF) {
printf("Nome = %s\nMatricola = %d\nVoto = %d\n", stringa, matricola, voto);
}
Si notino le "," fra i %s e %d, che ovviamente non ci vanno.
Volevo chiedere, che effetto ha l'inserimento delle virgole nello scanf?
Sembrano ritornare degli indirizzi di memoria.
Senza le virgole il programma funziona come dovrebbe.
grazie
file da cui legge:
Ballarini 1234 30
Creolo 4354 12
Ficarra 6544 23
Picone 7756 15
Output con le virgole:
Nome = Ballarini
Matricola = 1
Voto = 1058674984
Nome = 1234
Matricola = 1
Voto = 1058674984
Nome = 30
Matricola = 1
Voto = 1058674984
Nome = Creolo
Matricola = 1
Voto = 1058674984
Nome = 4354
Matricola = 1
Voto = 1058674984
Nome = 12
Matricola = 1
Voto = 1058674984
Nome = Ficarra
Matricola = 1
Voto = 1058674984
Nome = 6544
Matricola = 1
Voto = 1058674984
Nome = 23
Matricola = 1
Voto = 1058674984
Nome = Picone
Matricola = 1
Voto = 1058674984
Nome = 7756
Matricola = 1
Voto = 1058674984
Nome = 15
Matricola = 1
Voto = 1058674984
Process finished with exit code 0
per errore ho scritto una scanf come sotto, ottenendo risultati bizzarri:
while(fscanf(Fin, "%s, %d, %d", stringa, &matricola, &voto)!= EOF) {
printf("Nome = %s\nMatricola = %d\nVoto = %d\n", stringa, matricola, voto);
}
Si notino le "," fra i %s e %d, che ovviamente non ci vanno.
Volevo chiedere, che effetto ha l'inserimento delle virgole nello scanf?
Sembrano ritornare degli indirizzi di memoria.
Senza le virgole il programma funziona come dovrebbe.
grazie
file da cui legge:
Ballarini 1234 30
Creolo 4354 12
Ficarra 6544 23
Picone 7756 15
Output con le virgole:
Nome = Ballarini
Matricola = 1
Voto = 1058674984
Nome = 1234
Matricola = 1
Voto = 1058674984
Nome = 30
Matricola = 1
Voto = 1058674984
Nome = Creolo
Matricola = 1
Voto = 1058674984
Nome = 4354
Matricola = 1
Voto = 1058674984
Nome = 12
Matricola = 1
Voto = 1058674984
Nome = Ficarra
Matricola = 1
Voto = 1058674984
Nome = 6544
Matricola = 1
Voto = 1058674984
Nome = 23
Matricola = 1
Voto = 1058674984
Nome = Picone
Matricola = 1
Voto = 1058674984
Nome = 7756
Matricola = 1
Voto = 1058674984
Nome = 15
Matricola = 1
Voto = 1058674984
Process finished with exit code 0