搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 混合字符和数值输入
标题:
混合字符和数值输入
只看楼主
破碎的石头
等 级:
论坛游民
帖 子:71
专家分:13
注 册:2012-12-11
第
31
楼
得分:0
回复 29楼 TonyDeng
我这样理解对不对:ch=getchar();读入第一个字符,同时剩下的字符(包括\n)都存在缓存里面,while(getchra()!='\n')把除了换行符以外的字符全部抛弃(包括第一个字符),这样返回ch,而ch=第一个字符,之前读入的。
2012-12-11 23:09
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
32
楼
得分:0
连'\n'也抛弃了的,因为在结束循环的时候,就是getchar()读入了一个'\n'才引起结束,这个'\n'也被抛弃了的。ch是一开始读入时储存起来留作后面返回的,它已经被另外保存了。
授人以渔,不授人以鱼。
2012-12-11 23:11
破碎的石头
等 级:
论坛游民
帖 子:71
专家分:13
注 册:2012-12-11
第
33
楼
得分:0
回复 32楼 TonyDeng
那第一个字符在while()中用不用在出现一次?
2012-12-11 23:12
TonyDeng
等 级:
贵宾
威 望:
304
帖 子:25859
专家分:48889
注 册:2011-6-22
第
34
楼
得分:0
不用。你要知道,输入缓冲区就如水龙头,数据有如水滴,你读一滴,下一滴就接过来让你下一次getchar()来读。所以一开始的ch = getchar()已经把第一滴水接走放在杯子里了,然后不断地接下一滴水,但不储存,倒掉,直到读到'\n'这滴之后,就不再读了,然后把刚才杯子里的ch水滴返回出去。
授人以渔,不授人以鱼。
2012-12-11 23:15
破碎的石头
等 级:
论坛游民
帖 子:71
专家分:13
注 册:2012-12-11
第
35
楼
得分:0
回复 34楼 TonyDeng
大谢。谢谢大神不厌其烦的回答。谢谢。
晚安。搞懂问题才睡得觉
2012-12-11 23:18
35
4/4页
1
2
3
4
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-390748-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.134546 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved