#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;
}
Oto sprowadzona wersja tego, co próbuję zrobić. Ten kod nie drukuje niczego w konsoli. Jeśli usuniemy wywołanie fprintf
, wypisze pierwsze 2 ciągi w pliku, dla mnie jego Hello2 World
. Dlaczego to się dzieje? Nawet po fflush
fp
?Używanie fscanf i fprintf razem w C
Dzięki! Przyjmuję twoją odpowiedź za 10 minut. –
'Przewiń do tyłu (fp)' jest prawdopodobnie lepsze, ponieważ ma również wpływ (w przypadku plików otwartych na aktualizację) przygotowania do przełączania między czytaniem a pisaniem. – Peter
@Peter - Dzięki, zaktualizowałem odpowiedź. –