44问答网
所有问题
当前搜索:
scanf后面用getchar
getchar
在
scanf
()后有什么作用
答:
getchar
在
scanf
()后,可以吸收回车符,以便输入下一个字符。如 int n;char a;scanf("%d",&n);getchar(); //清除回车符 scanf("%c",&a);
c语言
scanf
输入字符串为何要加
getchar
答:
第一个
scanf
读入字符串后,换行符留在输入缓冲区中,被第二个scanf读入(scanf的格式字符串为%c时会读取一切字符包括换行和回车),因而造成错误。可在第一个scanf结束后加入一行while(getchar()!='\n');清空输入缓冲区。
为什么还要
getchar
()?
答:
在通过
scanf
完成对于整形变量的输入之后,加
getchar
()是为了接收回车产生的 换行字符。其实这份代码不加getchar()也可以正常运行,因为输入的两个都是整形,而在输入整形的时候,会忽略之前的空格、回车,并且以之后的空格、回车会输入整形结束的标志。如果是下面的这种情况,就需要getchar()了 int a;cha...
c语言中
scanf后面
一定要跟个
getchar
吃回车吗?
答:
因此,是否一定要在
scanf后面
跟个
getchar
吃回车,要看下一个输入的数据类型是什么,如果是读字符类操作,处理办法有多种方式:一、用fflush(stdin)命令强行刷新输入缓存,丢弃输入缓存中的数据,此种方法在windows下使用有效,linux无效。char ch;fflush(stdin); //不管缓存中有没有数据,强行清除ch=ge...
C语言 这个程序为什么要加
getchar
() 前面有
scanf
了啊
答:
加
getchar
(); 的目的是吸收掉前面执行
scanf
("%c",&a); 时遗留在输入缓冲区里的'\n',以免后面还有某些输入语句时由遗留在输入缓冲区里的'\n'引起错误。在这段代码中,后面已经没有输入语句了,所以有没有getchar();都可以。
...程序为何在
scanf
代码和switch函数之间加上
getchar
();就能够解决执行...
答:
那就肯定是缓冲区的问题了. 调用
scanf后
留下了一个\n, 这个\n在下一次输入的时候就会直接被读入, 导致输入出错. 所以一般scanf写的时候在%x
后面
加一个空格, 如: scanf("%d ", &i);虽然看你的代码中后面没有输入, 但是从
getchar
中只能分析出这么多了, 你没有说清是哪有问题.
为什么输入字符型字母要同时运用
scanf
和
getchar
才能成功?
答:
因为
scanf
("%c",&ch);只接收一个字符,会把输入的'\n'留在输入缓冲区;而'\n'也是字符,
后面
的输入语句会把它接收而收不到你输入的有用字符,所以会出错。写成scanf("%c",&ch);
getchar
();后getchar();会把遗留在缓冲区中的那个'\n'接收掉,就不会出错了。但你scanf("%c",&ch);ch...
scanf
在前
getchar
后一起使用,发现getchar没有被执行,为什么?请大家指教...
答:
其实是执行了,因为
getchar
()函数可以接收空格和回车,所以c中应该接收的是回车,你可以在输出时可以按a,c,b的顺序输出就会知道了.
C语言用二维数组储存字符串,为什么他的第一位储存不了?
答:
解决方案很简单:在第一条
scanf后面
加一条getchar();即可 原因:scanf读取数字后在输入缓冲区剩余了多余的回车符'\n',此回车符被gets读入误认为是第一行,故,需要
用getchar
()将此多余的回车“吃掉”。
getchar
用法
答:
1、从缓冲区读走一个字符,相当于清除缓冲区 2、前面的
scanf
()在读取输入时会在缓冲区中留下一个字符'\n'(输入完s[i]的值后按回车键所致),所以如果不在此加一个
getchar
()把这个回车符取走的话,gets()就不会等待从键盘键入字符,而是会直接取走这个“无用的”回车符,从而导致读取有误 3...
1
2
3
4
5
6
7
8
9
10
涓嬩竴椤
灏鹃〉
其他人还搜
getchar和scanf一起用
scanf后跟getchar
c语言scanf和getchar
scanf与getchar
getchar与scanf区别
getchar和putchar
getchar和char
c语言gets和scanf
c语言getchar有什么用