|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Bannato
Iscritto dal: Mar 2004
Città: Roma
Messaggi: 2683
|
[C] Problema lettura da file
ahhh l'esame di programmazione è una rovina
Qualche giorno fà avevo fatto un programma che scriveva su file (allegato quà sotto), oa ne ho fatto uno che dovrebbe leggere i dati precedentemente inseriti dal file e stamparli sullo schermo ma non mi funziona (me ne girasse mai uno...) che c'ha secondo voi? 1) /* Creare un file sequenziale */ #include <stdio.h> int main(){ int account; int name[30]; float balance; FILE *cfPtr; // Puntatore al file clients.dat if((cfPtr = fopen("clients.dat", "w")) == NULL) printf("Il file non puo' essere aperto\n"); else{ printf("Inserire l'account, il nome e il bilancio\n"); printf("? "); scanf("%d%s%f", &account, name, &balance); while(!feof(stdin)){ fprintf(cfPtr, "%d %s %.2f\n", account, name, balance); printf("? "); scanf("%d%s%f", &account, name, &balance); } fclose(cfPtr); system("PAUSE"); } return 0; } 2)/* Leggere e stampare un file sequenziale */ #include <stdio.h> int main(){ int account; int name[30]; float balance; FILE *cfPtr; // Puntatore al file clients.dat if((cfPtr = fopen("clients.dat", "r")) == NULL) printf("Il file non può essere aperto"); else{ printf("%-10s%-13s%s\n", "Account", "Name", "Balance"); fscanf(cfPtr, "%d%s%f", &account, name, &balance); while(!feof(cfPtr)){ printf("%-10d%-13s%7.2f\n", account, name, balance); fscanf(cfPtr, "%d%s%f", &account, name, &balance); } fclose(cfPtr); } system("PAUSE"); return 0; } 3)contenuto del file clients.dat 100 Ugo 74.50 200 Massimo 66.00 300 Francesca 454.00 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
Forse il problema risale alle stringe,
Cioè quando va a scrivere la stringa la scrive fino a quando non trova il carattere '\0' OK, invece qundo vai a leggere (Forse ) legge tutti i 30 carattere senza magari tener conto dello '\0' ma non ti so dare la certezza, questa è solo un ipotesi |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
Pero da come è scritto nelle specifiche non dorebbe creare questi problemi
http://www.cplusplus.com/ref/cstdio/fscanf.html |
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Re: [C] Problema lettura da file
Quote:
tu dichiari: int name[30] e poi lo prendi con scanf senza l'&. Dovresti dichiararlo come array di char: char name[30] e poi puoi prenderlo con scanf senza l'&. Se ho scritto stupidate, la giuria è pregata di non tenerne conto
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
|
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Sep 2002
Città: Celano (AQ) Segno_Zodiacale: Leone Ascendente: Cammello Segni_Particolari: Quello
Messaggi: 9571
|
Re: Re: [C] Problema lettura da file
Quote:
|
|
|
|
|
|
|
#6 | ||
|
Senior Member
Iscritto dal: Sep 2004
Messaggi: 3967
|
Re: Re: Re: [C] Problema lettura da file
Quote:
Quote:
qui ho toppato alla grandissima
__________________
Dai wafer di silicio nasce: LoHacker... il primo biscotto Geek
|
||
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:48.



















