有关文件操作的一个小问题

base64 2003-08-20 10:09:14
先看代码:

#include<stdio.h>
main()
{
FILE *in,*out;
char ch,infile[10],outfile[10];
scanf("%s",infile);
scanf("%s",outfile);
in=fopen(infile,"r");
out=fopen(oufile,"w");
while(!feof(in))
fputc(fgetc(in),out);
fclose(in);
fclose(out);
}

这是一个很简单的文件copy的操作,可是我这里的问题是,
如果我分别输入1.txt 2.txt,最后出来的2.TXT字符串后面总是多出了特殊符号
我这里无法给你看,因为我考到这里来,它不显示,总之是个类似与y 上面多两个
点的符号。

我想知道如何修改程序,才能去处那个符号
...全文
59 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lyr311 2003-08-21
  • 打赏
  • 举报
回复
楼主怎么就揭帖啦,你没发现这里面存在的一个问题吗?
shishiXP(诗人XP) 给出的答案说明,C在处理文件的时候,是把最后的文件结束符号当成了一个实际的字符啊,必须取完最后的文件结束符才算文件真正的结束?而这与通常所说的文件结束只是一个逻辑上的符号而已不符合啊?
shishiXP 2003-08-20
  • 打赏
  • 举报
回复
int temp;
while(1)
{
temp=fgetc(in);
if(feof(in))break;
fputc(temp,out);
}
base64 2003-08-20
  • 打赏
  • 举报
回复
我想也是把"\0"给搞进去了,但是我不知道怎么处理

这是 潭浩强的《c程序设计(2)》里的一段

大学课程。

自己都不先试试,就写到书里去,不负责任
jack_wq 2003-08-20
  • 打赏
  • 举报
回复
是不是把结尾符号也考进去了!

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧