| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 198 人关注过本帖
标题:为什么不执行scanf("%c",&c);这一句,头大了
只看楼主 加入收藏
sean0034
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2022-1-10
结帖率:0
收藏
已结贴  问题点数:20 回复次数:3 
为什么不执行scanf("%c",&c);这一句,头大了
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
    int a,b;
    char c;
    scanf("%d",&a);
    scanf("%d",&b);
    scanf("%c",&c);
    printf("%d\n",a);
    printf("%d\n",b);
    printf("%c",c);
    return 0;
}

[此贴子已经被作者于2022-1-10 20:57编辑过]

搜索更多相关主题的帖子: 执行 int include scanf printf 
2022-01-10 18:30
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:340
帖 子:8649
专家分:38002
注 册:2014-5-20
收藏
得分:10 
这样看看就清楚
printf("%d",c);
2022-01-11 09:06
sean0034
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2022-1-10
收藏
得分:0 
谢谢,又学了一招!
2022-01-11 12:08
邹生笑谈
Rank: 2
等 级:论坛游民
帖 子:5
专家分:10
注 册:2020-12-5
收藏
得分:10 
你是不是用回车作为截止条件。scanf它把回车当作一个字符,给了c。并不是不执行。你看看输出是不是直接换行两次。
你输入数字后直接输入你想要的字符,再按回车就行了。
我把代码调试了一下,代码是没有问题的。

涉及到缓冲区的概念,具体的我没有深入了解。但使用sancf要上网查查其注意事项。
我在网上找了一个

关于scanf()函数我们要知道以下几点:
1、用户输入的字符,会以ASCII码形式存储在键盘缓冲区;
2、每调用一次scanf函数,就从键盘缓冲区读走一个字符,相当于清除缓冲区;
3、若用户一次输入n个字符,则前n次调用scanf函数都不需要用户再次输入,直到把缓冲区的数据全部读取(清除)干净;
4、调用scanf()函数时,用户最后输入的回车也会储存在键盘缓冲区;

————————————————
原文链接:https://blog.
2022-01-11 20:56
快速回复:为什么不执行scanf("%c",&c);这一句,头大了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038306 second(s), 8 queries.
Copyright©2004-2022, BCCN.NET, All Rights Reserved