标题:混合字符和数值输入
只看楼主
破碎的石头
Rank: 2
等 级:论坛游民
帖 子:71
专家分:13
注 册:2012-12-11
结帖率:100%
已结贴  问题点数:20 回复次数:34 
混合字符和数值输入
惭愧。新手自学【C primer plus】,在第8章8.7.2那里卡住了。代码如下:
char get_first(void)
{
int ch;
ch=getchar();
while(getchar()!='\n')
continue;
return ch;
}
请问ch为什么定义为int?还有怎么样实现“读取一行第一个字符并将其余字符丢弃掉”?
搜索更多相关主题的帖子: 怎么样 混合 continue return 
2012-12-11 22:12
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
字符和整型
也就是char  int原本就没太大的区别  仅仅c是这样  其他语言就得转换了 c的优点是可以直接计算 不用转换

DO IT YOURSELF !
2012-12-11 22:14
破碎的石头
Rank: 2
等 级:论坛游民
帖 子:71
专家分:13
注 册:2012-12-11
得分:0 
回复 2楼 wp231957
我一直看不懂这里是怎么实现 只读取第一个字符的
2012-12-11 22:17
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:0 
貌似
getchar();
只能传进来一个字符呢

DO IT YOURSELF !
2012-12-11 22:21
破碎的石头
Rank: 2
等 级:论坛游民
帖 子:71
专家分:13
注 册:2012-12-11
得分:0 
回复 4楼 wp231957
那第一个字符是怎么被读取的?它不是也!=‘\n’吗?
2012-12-11 22:23
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:4 
以下是引用破碎的石头在2012-12-11 22:23:45的发言:

那第一个字符是怎么被读取的?它不是也!=‘\n’吗?
第一个字符就是getchar()传进来的字符啊

其实我觉得
while(getchar()!='\n')
continue;
没啥用处

DO IT YOURSELF !
2012-12-11 22:25
农民也疯狂
Rank: 2
来 自:伯纳乌
等 级:论坛游民
帖 子:48
专家分:56
注 册:2012-12-4
得分:4 
ch=getchar();
就是把第一个字符读出来了,
while(getchar()!='\n')
continue;
知道循环结束,就是直到遇到换行符都没有任何操作,
最后把ch返回了

这个函数调用一次,就返回一行的第一个字符

屌丝的世界不容懈怠
2012-12-11 22:26
破碎的石头
Rank: 2
等 级:论坛游民
帖 子:71
专家分:13
注 册:2012-12-11
得分:0 
回复 6楼 wp231957
那它传进来也不符合=\n啊?
2012-12-11 22:29
破碎的石头
Rank: 2
等 级:论坛游民
帖 子:71
专家分:13
注 册:2012-12-11
得分:0 
回复 7楼 农民也疯狂
原来如此啊。
2012-12-11 22:30
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:4 
回复 楼主 破碎的石头
你看看getchar()的函数原型,看它返回的数据类型是什么?

授人以渔,不授人以鱼。
2012-12-11 22:30



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




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

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