C语言中,scanf时输入数据时, 如何忽略输入的字符?
答案:3 悬赏:10 手机版
解决时间 2021-04-18 15:08
- 提问者网友:姑娘长的好罪过
- 2021-04-18 05:08
C语言中,scanf时输入数据时, 如何忽略输入的字符?
最佳答案
- 五星知识达人网友:山君与见山
- 2021-04-18 06:07
你的意思是输入多余的字符吧?
1、因为你用scanf输入的字符都是输入到缓冲区中的,例如你定义了一个只接受一个字符的变量ch,但却输入了多余的字符,这种情况会给编译器造成困扰,因为他并不完全智能,通常采用这种方法释放掉缓冲区内多余的字符输入;例如:
2、char ch;
scanf("%c", &ch);//假如你不小心输入了多个字符
//解决方法如下
while (‘\n’ != getchar())
{continue;}//这里的原理一不断的用getchar读取缓冲区内的字符,并将其废弃掉,直到遇到你输入的回车符(当然也可以是别的输入结束符);追问我原本输入的是数据,但是程序写完我输入单个字符或字符串程序就出错,所以我想在输入时,不识别字符。追答字符和字符串也是数据啊,你输入的是什么类型的数据呢最好能贴个代码什么的。。。嘿嘿追问说错了, 输入的是整数追答你想输入整数,又想可以忽略输入字符串和字符的情况是吧,那直接定义一个char类型的数组就行啦,讲想要输入的内容输入到里面即可。。。
1、因为你用scanf输入的字符都是输入到缓冲区中的,例如你定义了一个只接受一个字符的变量ch,但却输入了多余的字符,这种情况会给编译器造成困扰,因为他并不完全智能,通常采用这种方法释放掉缓冲区内多余的字符输入;例如:
2、char ch;
scanf("%c", &ch);//假如你不小心输入了多个字符
//解决方法如下
while (‘\n’ != getchar())
{continue;}//这里的原理一不断的用getchar读取缓冲区内的字符,并将其废弃掉,直到遇到你输入的回车符(当然也可以是别的输入结束符);追问我原本输入的是数据,但是程序写完我输入单个字符或字符串程序就出错,所以我想在输入时,不识别字符。追答字符和字符串也是数据啊,你输入的是什么类型的数据呢最好能贴个代码什么的。。。嘿嘿追问说错了, 输入的是整数追答你想输入整数,又想可以忽略输入字符串和字符的情况是吧,那直接定义一个char类型的数组就行啦,讲想要输入的内容输入到里面即可。。。
全部回答
- 1楼网友:举杯邀酒敬孤独
- 2021-04-18 09:00
1. 接收了,不使用
- 2楼网友:笑迎怀羞
- 2021-04-18 07:25
输入完数据,紧跟着一个getchar()可以吸收一个字符
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯