为什么下面的程序没有按预期打印新创建的文本文件( “E” )的第一个字符?这是一个简单的程序,我试图从各个方面来看问题,但找不到原因。文本文件正在我的 D 驱动器上创建,内容为“ EFGHI ”,但由于某种原因,即使我倒带和阅读使用并且输出为-1 ,也没有读取“E”。getc()
#include<stdio.h>
#include<stdlib.h>
int main()
{
int x;
FILE *fp;
fp=fopen("F:\\demo.txt","w");
if(fp==NULL)
puts("Write error");
fputs("EFGHI",fp);
rewind(fp);
x=getc(fp);
printf("%d",x);
fclose(fp);
}
更新:
#include<stdio.h>
#include<stdlib.h>
int main()
{
int x;
FILE *fp;
fp=fopen("F:\\demo.txt","w+");
if(fp==NULL)
{
puts("Write error");
exit(EXIT_SUCCESS);
}
fputs("EFGHI",fp);
rewind(fp);
while(!feof(fp))
{
x=getc(fp);
printf("%d\n",x);
}
fclose(fp);
}