【发布时间】:2017-04-07 20:15:33
【问题描述】:
请有人可以为我解释为什么这个程序不起作用?
我正在尝试使用r+ 从文件中读取和写入。文件test.txt 存在,写入正确执行。但是,读取不起作用。
int main() {
FILE* fichier = NULL;
int age, TAILLE_MAX=10;
char chaine[TAILLE_MAX];
fichier = fopen("test.txt", "r+");
if (fichier != NULL)
{
printf("give your age ? ");
scanf("%d", &age);
fprintf(fichier, "Hello you have %d year old", age);
while (fgets(chaine, TAILLE_MAX, fichier) != NULL)
{
printf("%s", chaine); //does not print
}fclose(fichier);
}
return 0;
}
不起作用我的意思是它不显示任何东西!即使文件包含一些你有...岁的句子。没有错误。只是程序不打印文件的内容
【问题讨论】:
-
尝试从文件读取时出现任何错误? “阅读不起作用”是什么意思?
-
“不起作用”不是问题描述。见minimal reproducible example。
-
它是正常退出,还是出现错误消息/崩溃?
-
尝试在
while循环之前执行fseek(fichier, 0, SEEK_SET);。它有什么改变吗? -
@Mehdi
fseek将光标设置为您要在文件中读取或写入的位置。由于您已写入文件,因此您的光标在您写入的内容之后。通过执行fseek,您将光标设置回文件的开头,以读取您刚刚写的内容。