文件读取练习题的问题

fantasy408 fantasy408 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家好,在练习文件读取时,有一个例子:

#include "stdio.h"
#include "stdlib.h"

int main(void)
{
char str[10]={};
FILE *fp,*fp2;
if((fp=fopen("test.txt","r"))==NULL)
{
printf("cannot open this file.\n");
exit(0);
}
if((fp2=fopen("test2.txt","w"))==NULL)
{
printf("cannot open this file.\n");
exit(0);
}
while(!feof(fp))//设置断点的行
fputc(fgetc(fp),fp2);
fgets(str,3,fp);//出问题的地方
printf("%s",str);
fclose(fp);
fclose(fp2);
return 0;
}

test.txt里放的是aaaa\n
先是将test.txt中的内容拷贝到test2.txt中,接着将test.txt头2个字符拷贝到str数组里。
但是运行结果是str里什么也没有。
文件指针fp不是始终指向文件开头吗?我在codeblocks里将断点设置到while行,debug时看到fp的内容不变化。
文件内容拷贝结束后,运行fgets,为何str里会没有值呢?
...全文

相关推荐

评论 2
收藏 已收藏
分享
返回顶部
fantasy408
C语言 70,039 成员 243,237 内容