|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2008
Messaggi: 70
|
[c] lettura da file
ho il seguente problema.. il programma mi scrive tranquillamente sul file però quando vado a fare la lettura il programma mi crasha tornando a windows.. probabilmente ho errato qualcosa nella funzione di lettura, ve la posto qua di seguito:
Codice HTML:
FILE *pass;
char ambulanze[20];
pass=fopen("ambulanze.dat","r");
if (pass==NULL) printf("impossibile aprire il file o file non presente\n\n");
else
{ fseek(pf,0,0);
fread(ambulanza,20,1,pf);
printf("%s\n",&ambulanza);
}
|
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
pf dove lo definisci ? Devi metterci pass invece di pf...
Ultima modifica di cionci : 01-04-2008 alle 09:45. |
|
|
|
|
|
#3 |
|
Member
Iscritto dal: Feb 2008
Messaggi: 70
|
giusto.. che idiota.. ho fatto confusione con l'altra parte del programma..
se io dovessi fare un ciclo di lettura di piu file incrementando via via l'fseek come potrei fargli capire quando fermarsi perchè i dati nel file sono finiti? Grazie ancora.. |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
L'fseek non lo devi incrementare, il file va avanti ad ogni lettura.
Il file è terminato quando feof ti ritorna true (l'ultima lettura fatta non è valida) oppure è parzialmente valida in caso di fread con il terzo parametro > di 1. http://www.cplusplus.com/reference/c...dio/fread.html |
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Feb 2008
Messaggi: 70
|
si xò nella funzione che ho scritto prima con le modifiche di pf in pass mi legge solo il primo valore del file.. come devo fare per far apparire a video una lista di tutti i valori presenti?
grazie |
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
fseek non ci vuole, fin quando vuoi muoverti sequenzialmente nel file ci pensa già da solo ad avanzare.
devi mettere la fread in un do while con feof nel controllo. |
|
|
|
|
|
#7 |
|
Member
Iscritto dal: Feb 2008
Messaggi: 70
|
correggimi se erro:
Codice HTML:
do
{
fread(ambulanza,20,1,pass);
printf("%s\n",&ambulanza);
}while(!feof(pass));
|
|
|
|
|
|
#8 |
|
Senior Member
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
|
Prima di tutto sbagli a stampare, devi togliere la & per la printf.
|
|
|
|
|
|
#9 |
|
Member
Iscritto dal: Feb 2008
Messaggi: 70
|
si scusami quello lo avevo già fatto.. solo che l'errore rimane..
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 12:51.



















