标题:这到底是怎么一回事,请高手帮忙?
只看楼主
StarWing83
Rank: 8Rank: 8
来 自:仙女座大星云
等 级:贵宾
威 望:19
帖 子:3951
专家分:748
注 册:2007-11-16
得分:15 
回复 5楼 xinhang
对于自己不懂的东西,可以猜测,但希望能说明白这是你推测的。否则容易误导初学者。


对于printf的函数,会有argument promotion,所有小于int的类型都会被转变成int,所以看起来char和int一样。

char ch;
这种形式本来就是错的,因为getc的原型是这样的:
int getc(FILE *);

必须是个int类型,才能接收到EOF。这样做:

int ch;
ch = getc(fp) ...

专心编程………
飞燕算法初级群:3996098
我的Blog
2010-05-03 18:17
xxwpk007
Rank: 4
等 级:业余侠客
帖 子:166
专家分:289
注 册:2007-7-29
得分:0 
2L已经说了
for(;(ch = getc(fp)!=EOF);)// for(;(ch = getc(fp))!=EOF;)
2010-05-03 18:24
xinhang
Rank: 2
等 级:论坛游民
帖 子:40
专家分:57
注 册:2006-7-25
得分:0 
以下是引用StarWing83在2010-5-3 18:17:59的发言:

对于自己不懂的东西,可以猜测,但希望能说明白这是你推测的。否则容易误导初学者。


对于printf的函数,会有argument promotion,所有小于int的类型都会被转变成int,所以看起来char和int一样。

char ch;
这种形式本来就是错的,因为getc的原型是这样的:
int getc(FILE *);

必须是个int类型,才能接收到EOF。这样做:

int ch;
ch = getc(fp) ...

thanks very much.

\" ﹏╭⌒╮¤ ﹋ ^^
2010-05-04 12:36



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-305147-1-1.html




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

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