| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 442 人关注过本帖
标题:[求助]两段代码有区别吗?
只看楼主 加入收藏
momo_2003
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-5-2
收藏
 问题点数:0 回复次数:5 
[求助]两段代码有区别吗?
while((cha=fgetc(fpa))!=EOF)
{
fputc(cha,fpb);
}

cha = fgetc(fpa);
while (!feof(fpa))
{
fputc(cha, fpb);
cha = fgetc(fpa);
}
有什么不同吗?有大虾知道么,呵呵
搜索更多相关主题的帖子: 代码 
2006-05-02 01:38
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
回复:(momo_2003)[求助]两段代码有区别吗?

楼主朋友,您给的两段代码没有什么区别。不过,
高手们通常喜欢第一段代码,即
while((cha=fgetc(fpa))!=EOF)
fputc(cha,fpb); //大括弧可省略
但初学者建议从这儿:
cha = fgetc(fpa);
while (!feof(fpa))
{
fputc(cha, fpb);
cha = fgetc(fpa);
}
开始,因为它/好理解些。
【注意】对于TURBOC 2.0请使用第二种代码。


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-02 04:53
momo_2003
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-5-2
收藏
得分:0 

但是在用程序复制*.exe的二进制文件时,用上面的方法就无法实现复制准确的复制,而下面一种代码却能够准确复制,很奇怪啊~~~~

2006-05-02 11:17
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
能的,你把你的源程序都粘上来,我下午帮你看看

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-02 11:19
momo_2003
Rank: 1
等 级:新手上路
帖 子:29
专家分:0
注 册:2006-5-2
收藏
得分:0 
就是你发给我的代码,把
cha = fgetc(fpa);
while (!feof(fpa))
{
fputc(cha, fpb);
cha = fgetc(fpa);
}
改成我做的这个:
while((cha=fgetc(fpa))!=EOF)
{
fputc(cha,fpb);
}
其他都一样,我就纳闷为什么不能执行了~~~~崩溃中发呆。。。
2006-05-02 12:43
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
如果用我这个则无论在TC还是VC++
都能够兼容。
while(1)
{
char ch=fgetc(fp1);
if( feof(fp1) )break;
fputc(ch,fp2);
}
原因分析:TurboC有个缺陷,即必须主动去撞击一下文件的“底部”后再测试feof()并退出循环。而不能:
while(!feof(fp1)){......}
如果你硬这样做则势必多读出1个废字符。

落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-03 07:34
快速回复:[求助]两段代码有区别吗?
数据加载中...
 
   



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

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