#include <stdio.h>
#include <stdlib.h>
#define FILE_NAME "ff.txt"
int main() {
char x[10],y[10];
FILE *fp;
fp = fopen(FILE_NAME, "r+");
if (fp == NULL) {
printf("couldn't find %s\n ",FILE_NAME);
exit(EXIT_FAILURE);
}
fprintf(fp,"Hello2 World\n");
fflush(fp);
fscanf(fp,"%s %s",x,y);
printf("%s %s",x,y);
fclose(fp);
return 0;
}
Ecco una versione ridotta di ciò che sto cercando di fare. Questo codice non stampa nulla nella console. Se rimuovo la chiamata fprintf
, stampa le prime 2 stringhe nel file, per me è Hello2 World
. Perché sta succedendo? Anche dopo I fflush
il fp
?Utilizzo di fscanf e fprintf insieme in C
Grazie! Accetterò la tua risposta in 10 minuti. –
'rewind (fp)' è probabilmente migliore, poiché ha anche l'effetto (per i file aperti per l'aggiornamento) di preparare un passaggio tra lettura e scrittura. – Peter
@Peter - Grazie, ho aggiornato la risposta. –