Mea*_*ead 4 c filestream text-files getc rewind
为什么以下程序没有按预期打印新创建的文本文件("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);
}
Run Code Online (Sandbox Code Playgroud)
更新:
#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);
}
Run Code Online (Sandbox Code Playgroud)