男宝宝阴囊疝气图片:scanf函数的问题

来源:百度文库 编辑:中科新闻网 时间:2024/05/06 07:18:28
在C语言里面,我曾经出现过这样的一种情况,就是比如以下一段程序:
main(0
{
.....
scanf("%c\n",k);
......
scanf("%c\n",m);
......}
问题就是比如第一个scanf输入一个字符,然后回车,
到第二个scanf的时候,它就没作用了.
这是什么问题,我问过别人,他说是缓冲区的问题...
但我还不明白,你们能详细说说吗?谢谢!!
还有详细点的答案吗?

应该是:
scanf("%c\n",&k);

scanf("%c\n",&m);

你忘了写 & 符号

你可以一起输入嘛!
scanf("%c%c"&k,&m);

#include <stdio.h>

int main()
{
char a,b;
scanf("%c",&a);
printf("%c\n",a);
scanf("%c",&b);
printf("%c\n",b);
}

第二个scanf不是没用,而是收了你打出的回车符,你如果打
input:
12
那程序就会输出
output:
1
2
(注意,这里input,output是帮助理解,并不是打印出来的字符)
如果要去除这种情况,C++中一般cin就可以了,C里可以使用getchar()来取出缓冲区内的回车,空格等自己不想用的字符,一个if判断就可以了,至于还有其他什么方法,大家还可以继续讨论。