#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;
}
Вот своя версия того, что я пытаюсь сделать. Этот код ничего не печатает в консоли. Если я удалю вызов fprintf
, он печатает первые 2 строки в файле, для меня его Hello2 World
. Почему это происходит? Даже после того, как я fflush
fp
?Использование fscanf и fprintf вместе в C
Спасибо! Я отвечу на ваш ответ через 10 минут. –
'rewind (fp)', вероятно, лучше, так как он также имеет эффект (для файлов, открытых для обновления) подготовки к переключению между чтением и записью. – Peter
@Peter - Спасибо, я обновил ответ. –