C语言中,scanf时输入数据时, 如何忽略输入的字符?

如题所述

你的意思是输入多余的字符吧?
1、因为你用scanf输入的字符都是输入到缓冲区中的,例如你定义了一个只接受一个字符的变量ch,但却输入了多余的字符,这种情况会给编译器造成困扰,因为他并不完全智能,通常采用这种方法释放掉缓冲区内多余的字符输入;例如:
2、char ch;
scanf("%c", &ch);//假如你不小心输入了多个字符
//解决方法如下
while (‘\n’ != getchar())
{continue;}//这里的原理一不断的用getchar读取缓冲区内的字符,并将其废弃掉,直到遇到你输入的回车符(当然也可以是别的输入结束符);追问

我原本输入的是数据,但是程序写完我输入单个字符或字符串程序就出错,所以我想在输入时,不识别字符。

追答

字符和字符串也是数据啊,你输入的是什么类型的数据呢最好能贴个代码什么的。。。嘿嘿

追问

说错了, 输入的是整数

追答

你想输入整数,又想可以忽略输入字符串和字符的情况是吧,那直接定义一个char类型的数组就行啦,讲想要输入的内容输入到里面即可。。。

温馨提示:内容为网友见解,仅供参考
第1个回答  2013-05-24
输入完数据,紧跟着一个getchar()可以吸收一个字符
第2个回答  2013-05-24
1. 接收了,不使用

C语言中,scanf时输入数据时, 如何忽略输入的字符?
1、因为你用scanf输入的字符都是输入到缓冲区中的,例如你定义了一个只接受一个字符的变量ch,但却输入了多余的字符,这种情况会给编译器造成困扰,因为他并不完全智能,通常采用这种方法释放掉缓冲区内多余的字符输入;例如:2、char ch;scanf("%c", &ch);\/\/假如你不小心输入了多个字符 \/\/解决方...

C语言中用scanf函数输入字符时,为什么要在输入控制符%c前面加空格?用s...
空格确实不是必须的,但有了空格就可以忽略你输入的空格。例如:scanf(" %c" ,&c),你输入了' a'(a前面有个空格),a就能被c接受。但控制符前如果没空格,那c就接受了空格,这个可以防止误操作,忽略空格输入,接受第一个非空格输入。注意事项:对于scanf()而言,%c是个较为特殊的说明符。 %c...

c语言中,怎么忽略输入字符串中的空格符?
展开全部 #include\\x0d\\x0avoid main()\\x0d\\x0a{\\x0d\\x0achar a,b,c;\\x0d\\x0ascanf("%c%*c%c%*c%c%*c",&a,&b,&c);\\x0d\\x0aprintf("%c%c%c\\n",a,b,c);\\x0d\\x0a} \\x0d\\x0a%*c是跳过下一个字符 避免回车之类被吸收 已赞过 已踩过< 你对这个回答的评价是...

有关C语言scanf输入问题
因为第二个scanf是输入浮点型,自动把回车忽略了。而第三个如果不加空格,scanf读到回车认为输入了一个空字符。如果不用空格用\\n也可以。

c语言中想要在scanf中 忽略很多空格怎么办?
用:scanf("%*d",&a);加*

C语言中scanf函数的3种常见问题与应对技巧你都会了吗?
在编写C语言程序时,使用scanf函数可能会遇到几种常见问题。本文将详细介绍这三种常见问题及其解决方案,帮助您在编程过程中避免这些问题。1. 空白符问题 在输入数据时,如果在整数后面输入了一个空格或回车符,程序可能会出错。这是因为scanf函数在读取到空白字符后会跳过这些字符继续读取下一位。解决方法是...

C语言中用scanf函数输入字符时,为什么要在输入控制符%c前面加空格?用s...
scanf()就是从标准输入流中或许数据,上面第一个scanf()要读入一个整数,它从标准输入流中查找,跳过空白符(空格、换行符、制表符)3.如果遇到数字,则开始读入,直到遇到非数字的字符结束,最后计算读取到的数值,储存到相关变量中。使用scanf注意事项 1.参数的个数一定要对应 2.输入的数据类型一定要...

c语言 SCANF()忽略输入完成以后的回车
呵呵,确实很奇怪。没看过这种要求的。你要让输入和输出在同一行,就算用getchar();也是没用的啊。估计只能用空格作为结束标志了。然后在printf的时候向前退一格就能连起来了。而且即使你不知道要输入多少个数,你设一个计数器不就可以用gotoxy();了?当然,不推荐这么做。

c语言中如何让scanf中输入的字符不在屏幕上显示
你可以用getch();这个功能,我才写过!用scanf()恐怕不好做~(可能要不断的清屏)

c语言的scanf接收到底是忽略空格还是不忽略呢?
举几个例子,或许你就对这个函数理解了,由于一般都是用这两个字符控制输入的,所以只讨论空格回车的情况 1.输入数据为非char类型的情况:int a, b;scanf("%d%d",&a,&b);此时的输入方式可以是1空格2 或者1空格空格。。2 或者1回车2 或者1回车回车。。2 此时可以得出结论,scanf接收不但忽略空格...

相似回答