黑马程序员技术交流社区

标题: scanf 函数连续接受多个字符的方法 [打印本页]

作者: 余丽丽    时间: 2015-6-3 11:30
标题: scanf 函数连续接受多个字符的方法
int main(){

    char a,b;
    scanf("%c",&a);
    scanf("%c",&b);
    return 0;
}
/*
输入 a回车 然后就退出了。

这个问题有很多说法有说是缓冲区没有清除,有说stdin这个流的问题,我也不知道是什么原因,这里介绍一个解决这种问题的方法:
*/
int main(){
    char a,b;
    scanf("%c",&a);
    scanf(" %c",&b);   //注意%c前有空格
    return 0;
}
/*
再编译一下就没有问题了
*/
作者: 李永方    时间: 2015-6-3 13:57
为什么是这样的啊
作者: 余丽丽    时间: 2015-6-3 14:05
李永方 发表于 2015-6-3 13:57
为什么是这样的啊

你记住就行了
作者: huyingbin    时间: 2015-6-3 15:35
表示不太懂
作者: aofex    时间: 2015-6-3 17:38
我前几天也发过类似个帖子 不过那是我自己问的,我那个是一点击运行然后死机,你这样说我试试去!!!
作者: 晗修    时间: 2015-6-3 17:57
a回车 其实已经输入了2个字符 'a'和'\n' 所以第一个程序立刻就结束了 因为已经接收到了2个字符
而第二个程序 scanf寻找了3个字符 a ‘ ’和 b,其实就是用‘ ’吸收了‘\n’,所以能够继续
作者: 白0702    时间: 2015-6-3 17:59
有些东西,真得很难解释啊
作者: evenzhu1989    时间: 2015-6-3 18:53
晗修 发表于 2015-6-3 17:57
a回车 其实已经输入了2个字符 'a'和'\n' 所以第一个程序立刻就结束了 因为已经接收到了2个字符
而第二个程 ...

正解
作者: chensc    时间: 2015-6-3 19:22
学习学习!
作者: yi95392    时间: 2015-6-3 21:53
6楼解释的很好
作者: jx836202365    时间: 2015-6-4 08:05
其实可以再复制一遍scanf输入一个回车,并且用*忽略,希望回车,空格都没有问题
作者: 任伟    时间: 2015-6-4 08:55
加油了 朋友
作者: 余丽丽    时间: 2015-6-4 08:56
jx836202365 发表于 2015-6-4 08:05
其实可以再复制一遍scanf输入一个回车,并且用*忽略,希望回车,空格都没有问题 ...

这样也可以
作者: 皇道金丹    时间: 2015-6-14 02:39
哪个啥,我说说我的见解,说的不对,不要介意哈,我觉着吧,你的代码之所以退出是因为你用了两个scanf函数的时候,你在输入字符的时候只输了a并只接受了一个a, 因为你的两个%c之间没有任何的区隔,如果你不输入第二个字符的话, 他就接受不了,从而只能接受一个a并打印
当你在第二个%c前加空格的话,那你在屏幕上就输入字符就必须也同时输入空格,你输入一个a按回车的话,也就相当于输入了一个空格,程序并不会退出,因为你第二个scanf的%c前有空格,所以程序等你输入第二个字符,当你输入了第二个字符再按回车程序才会退出;
还有写scanf函数一般都是h写 ---->   sacanf("%c%c", &a, &b);或者sacanf("%c      %c", &a, &b);
注意两个%之间,一个有空格,一个没有空格,当你在屏幕上输入字符时,就必须按照你写代码时两个%c之间有没有空格来输入字符,这样就可以了,
我是图图哟,觉得我说的对的话,记得给好评哟,:lol
作者: zhanghao2744491    时间: 2015-6-14 07:25
没那么多为什么 记住就可以了
作者: chensc    时间: 2015-6-14 09:54
学习学习!
作者: 飞翔的猪    时间: 2015-6-14 10:29
说实话,看不懂。。。
作者: cxl19900517    时间: 2015-6-15 16:41
建议你接收数据时,先来个打印,提示用户输入,然后接收一个数值,再提示,在接受一次,这样自己输入时就能够看到提示文字,不会出现这些问题
作者: chensc    时间: 2015-6-15 19:16
学习学习!
作者: Chasel    时间: 2015-6-16 10:13
学习学习,欢迎前辈前来讨论
作者: 池莉娘子    时间: 2015-6-16 17:24
一起输入可以吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2