| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2046 人关注过本帖
标题:关于复制文件的一点小疑问?
只看楼主 加入收藏
yyow3193
Rank: 1
来 自:三峡宜昌
等 级:新手上路
帖 子:165
专家分:0
注 册:2008-6-5
收藏
 问题点数:0 回复次数:17 
关于复制文件的一点小疑问?
#include "stdio.h"
main()
{FILE * in,* out;
 char infile[20],outfile[20];
 printf("输入infile:\n");
 scanf("%s",infile);
 printf("输入outfile:\n");
 scanf("%s",outfile);
 if((in=fopen(infile,"r"))==NULL)
 {printf("cannot open the file\n");
 exit(0);
 }
 if((out=fopen(outfile,"w"))==NULL)
 {printf("cannot open the file\n");
 exit(0);
 }
while(!feof(in))
fputc(fgetc(in),out);
fclose(in);
fclose(out);
}

这段小程序是把磁盘上已经存在的文件复制到另一个新的文件中,经这编译以后我是这样操作的:首先在编译程序生成程序的那个文件夹里新建了一个a.txt,然后在里面输入yyow保存后,运行程序,按照程序要求先后输入被复制的文件名,a.txt,然后输入复制到的文件b.txt以前不存在的,程序运行完后b.txt里面内容是yyow,但后面还有一个怪字符:y加上上面两点是什么哦?假如有个文件在C盘目录下,复制到D盘已经存在的一个文件里,我怎么复制这个文件,是不是需要输入文件完整路径呢?

[[it] 本帖最后由 yyow3193 于 2008-6-24 10:06 编辑 [/it]]
搜索更多相关主题的帖子: 疑问 文件 printf infile 
2008-06-24 10:04
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
原因是你写了个0xFF进去,也就是说fgetc读到了一个EOF……但是究竟为什么在你判断过feof以后fgetc仍然可以读到EOF我就不知道了……

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-24 11:07
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
收藏
得分:0 
做了一下试验,只能这么解释。就是说feof是在文件“已经”到达文件尾的时候才会返回true的。而fgetc读到最后一个的时候,读取的位置已经移到了文件尾,但是feof仍然返回false,非要等到fgetc发现读不动了,才会返回true,
还有种更简单的解释:fgetc是先移动文件指针,再读取的。这样在读取最后一个之后,指针没有被移动,所以不是eof,而在下次读取的时候,fgetc发现指针不能移动了,就返回-1,同时eof返回true。

专心编程………
飞燕算法初级群:3996098
我的Blog
2008-06-24 11:15
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 
错,feof测试是有条件,这个条件是什么让楼上自己去发现

九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2008-06-24 11:26
yyow3193
Rank: 1
来 自:三峡宜昌
等 级:新手上路
帖 子:165
专家分:0
注 册:2008-6-5
收藏
得分:0 
到底是什么原因啊,,,,
2008-06-24 11:51
yyow3193
Rank: 1
来 自:三峡宜昌
等 级:新手上路
帖 子:165
专家分:0
注 册:2008-6-5
收藏
得分:0 
如果把文件复制到*.DOC时最后没有那个怪字符,不过好象是多一个空格.
2008-06-24 14:50
yyow3193
Rank: 1
来 自:三峡宜昌
等 级:新手上路
帖 子:165
专家分:0
注 册:2008-6-5
收藏
得分:0 
feof()也是判断文件结束的
2008-06-24 15:04
sunkai
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-8-1
收藏
得分:0 
feof是二进制文件结尾判断的

帮助课业设计和作业,预付2元,QQ联系:674456991
2008-06-24 15:09
sunkaidong
Rank: 4
来 自:南京师范大学
等 级:贵宾
威 望:12
帖 子:4496
专家分:141
注 册:2006-12-28
收藏
得分:0 
[bo][un]sunkai[/un] 在 2008-6-24 15:09 的发言:[/bo]

feof是二进制文件结尾判断的

孔明???

学习需要安静。。海盗要重新来过。。
2008-06-24 15:11
sunkai
Rank: 1
等 级:新手上路
帖 子:13
专家分:0
注 册:2006-8-1
收藏
得分:0 
......








马甲杀不尽
春风吹又生

帮助课业设计和作业,预付2元,QQ联系:674456991
2008-06-24 15:12
快速回复:关于复制文件的一点小疑问?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.061191 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved