Fscanf, fprintf
Ciao ragazzi...volevo chiedere se è possibile acquisire tramite file un database, stamparlo a video poi su un altro file.
es:
nome matricola voto
Rossi 2234 30
e così via per circa 10 nomi....cm faccio???
Io ho provato ma mi copia solo Rossi...cm posso fare??? grazie mille...
Vi mostro la mia implementazione in ANSI C:
int main()
{
char database[10], /* input: acquisire database */
database_ordinato; /* output: database ordinato */
FILE *file_database, /* lavoro: puntatore al file di input */
*file_database_ordinato; /* lavoro: puntatore al file di output */
/* aprire i file */
file_database = fopen("database.txt",
"r");
file_database_ordinato = fopen("database_ordinato.txt",
"w");
/* acquisire database */
fscanf(file_database,
"%s",
database);
/* algoritmo di ordinamento */
/* comunicare il database ordinato */
fprintf(file_database_ordinato,
"\nIl database e' stato ordinato in ordine alfabetico (Cognomi) : \n\n%s",
database);
/* chiudere i file */
fclose(file_database);
fclose(file_database_ordinato);
return 0;
}
es:
nome matricola voto
Rossi 2234 30
e così via per circa 10 nomi....cm faccio???
Io ho provato ma mi copia solo Rossi...cm posso fare??? grazie mille...
Vi mostro la mia implementazione in ANSI C:
int main()
{
char database[10], /* input: acquisire database */
database_ordinato; /* output: database ordinato */
FILE *file_database, /* lavoro: puntatore al file di input */
*file_database_ordinato; /* lavoro: puntatore al file di output */
/* aprire i file */
file_database = fopen("database.txt",
"r");
file_database_ordinato = fopen("database_ordinato.txt",
"w");
/* acquisire database */
fscanf(file_database,
"%s",
database);
/* algoritmo di ordinamento */
/* comunicare il database ordinato */
fprintf(file_database_ordinato,
"\nIl database e' stato ordinato in ordine alfabetico (Cognomi) : \n\n%s",
database);
/* chiudere i file */
fclose(file_database);
fclose(file_database_ordinato);
return 0;
}
Risposte
"giocala88":/* acquisire database */ fscanf(file_database, "%s", database);
Usa
fscanf(file_database, "%s %d %d", nome, matricola, voto);

(ovviamente con i giusti tipi)
Gummitch nn va...ma tu l'hai provato xcaso????...fammi sapere...grazie mille
Gummitch m hai capito che il database è su un unico file.txt e che all'interno c'è scritto
nome matricola voto
(10 nomi ai quali associo il voto ed una matricola)...grazie ancora...CIAO!...fammi sapere miraccomando!
nome matricola voto
(10 nomi ai quali associo il voto ed una matricola)...grazie ancora...CIAO!...fammi sapere miraccomando!
"giocala88":
Gummitch m hai capito che il database è su un unico file.txt e che all'interno c'è scritto
nome matricola voto
(10 nomi ai quali associo il voto ed una matricola)...grazie ancora...CIAO!...fammi sapere miraccomando!
Calma calma, la fscanf è fatta così:
int fscanf (FILE *file, const char *format, ...);
Qui la puoi vedere: http://en.wikipedia.org/wiki/Scanf#fscanf
e qui invece c'è un piccolo esempietto tipo il tuo: http://www.cplusplus.com/reference/clib ... scanf.html
Puoi provare a copiare il codice dell'ultimo link e vedere come funziona seguendola in debug. Buon lavoro.

mi disp gummitch o sn incapace io o forse nn ti ho fatto capire il problema...ti ringrazio ma il programma nn va....nn va x niente...provaci tu se proprio6convinto...grazie ancora....CIAO!