gpt4 book ai didi

c - 为什么 rewind() 在这个简单的程序中没有按预期工作?

转载 作者:太空狗 更新时间:2023-10-29 15:15:56 26 4
gpt4 key购买 nike

为什么下面的程序没有按预期打印新创建的文本文件的第一个字符 ("E")?这是一个简单的程序,我试图从各个方面来看问题,但找不到原因。正在我的 D 驱动器上创建内容为“EFGHI”的文本文件,但由于某种原因,即使我使用 getc() 倒带和读取,也不会读取 “E”输出为-1

#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);
}

最佳答案

文件模式“w” 打开文件

使用 "w+" 打开文件进行写入读取。

(更多文件模式请参见man fopen。)


关于 getc() 返回 -1,逐字来自 man getc :

[...] getc() [...] return[s] the character read as an unsigned char cast to an int or EOF on end of file or error.

EOF 通常等于 -1。要对此进行测试,请执行 printf("EOF=%d\n", EOF);

关于c - 为什么 rewind() 在这个简单的程序中没有按预期工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33394038/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com