我需要在txt文件中写入内容并读取内容,然后在屏幕上打印。 下面是我编写的代码,它可以正确地创建内容并将其写入文件,但它无法从文件中读取并正确打印。
#include<stdio.h>
#include<stdlib.h>
main()
{
char filename[20]={"c:\\test.txt"};
FILE *inFile;
char c;
inFile=fopen(filename,"w+");
if(inFile==NULL)
{
printf("An error occoured!");
exit(1);
}
while((c=getchar())!=EOF)
fputc(c,inFile);
fputc('\0',inFile);
while((c=fgetc(inFile))!=EOF)
putchar(c);
}
有人会告诉我这个程序有什么问题,特别是最后两行。 提前致谢。
答案 0 :(得分:7)
您需要添加
fseek(inFile, 0, SEEK_SET);
之前
while ((c=fgetc(inFile)) != EOF)
putchar(c);
因为文件指针(不是用于内存分配的指针)已经移动到最后。要从文件中读取,您必须使用fseek
功能将其置于最前面。
答案 1 :(得分:1)
您需要在写入文件之后和开始阅读之前回到文件的开头:
fseek(inFile, 0, SEEK_SET);