从一个文件复制内容到另一个文件多出了一个字符

tracyjk tracyjk 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
#include <stdio.h>
#include <stdlib.h>
void main()
{
FILE *in,*out;
char inname[10],outname[10];
char ch;
printf("Put infile name:\n");
scanf("%s",inname);
printf("Put outfile name\n");
scanf("%s",outname);
if ((in=fopen(inname,"r"))==NULL)

{
printf("There is no existing %s\n",inname);
exit(0);

}

if ((out=fopen(outname,"w"))==NULL)
{
printf("NO existing file,then creat\n");
if ((out=fopen(outname,"w+"))==NULL)
{
printf("Error\n");
exit(0);
}
}
while(!feof(in))

{ch=fgetc(in);
fputc(ch,out);

putchar(ch);
}
fclose(in);
fclose(out);
}


结果如下:
12345
ÿ

用gdb调试后发现读取到‘\n’后还会再读取一个空的字符,而不是流上的文件结束符
哪个大家能帮忙解释下最后一个字符出现的原因及怎么更改
...全文

相关推荐

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