c语言中getchar()的用法

输入的是1空格+空格3是运行时两空格都被读入?还是。。输入的也是1空格+空格3是运行时前一个空格被读入,后一个空格被赋予c?还是。。。c的类型不一致时为何运行结果不一致?... 输入的是1空格+空格3
是运行时两空格都被读入?还是。。

输入的也是1空格+空格3
是运行时前一个空格被读入,后一个空格被 赋予c?还是。。。
c的类型不一致时为何运行结果不一致?
展开
 我来答
兴坚成后文
游戏玩家

2019-01-20 · 非著名电竞玩家
知道大有可为答主
回答量:1.2万
采纳率:32%
帮助的人:880万
展开全部
是这样的,你要进行下面的程序,就得按下回车键使输入生效,这样就输入了'\n'
循环就退出了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leoraten
2006-12-13 · TA获得超过151个赞
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
建议你去看看关于输入输出的资料,这也是c相对比较难的地方,
getchar();永远只向缓存中输入一个字符,
在你举的例子中(9)步其实只是向缓存中存入的用户输入的第一个字母,
正常说是f
但在c中回车符也算个字符
如果没有(11)
再第二次循环中 (9)步向缓存中递交的并不是用户输入的字符
而是用户第一次打入的回车符
导致循环停止
getchar();的用法很多;
一种就是你这个程序用到的清空回车符 这种情况一般发生在在循环中涉及到输入的情况
还有一种是某些编译平台(IDE)在运行程序时并没有在程序运行后给人看结果的时间 这时候 在程序最后加上getchar()就能造成程序的暂停 给程序员度结果的机会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
darkhatedark
2013-03-12 · TA获得超过134个赞
知道小有建树答主
回答量:145
采纳率:100%
帮助的人:84.4万
展开全部
getchar不要也可以,建议不要,因为没什么意义;
你的程序中getchar运行了的,在输入数字后按的那个enter键就运行了getchar();
但我们一般编写时都没要。
scanf("%d/%d",&a,&b);

有一点小错,应该把"/"删除,改为
scanf("%d%d",&a,&b);或

scanf("%d %d",&a,&b);
程序输出才正确,否则无论你输入什么,输出都为0,你可以试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
never715
2013-11-23 · TA获得超过942个赞
知道小有建树答主
回答量:1010
采纳率:84%
帮助的人:477万
展开全部
c是int的时候取数据时忽略了空格,但是c为char时取到的是空格
追问
c是int的时候取数据时为何忽略空格,是因为getchar()?
追答

getchar只是取到了前一个空格,后面那个空格在c是int的时候是被scanf忽略掉的。你可以试着写一句简单的代码测试。然后输入 空格+3,最后c的值肯定是3而不是空格。

int main()
{
    int c;
    printf(":");
    scanf("%d", &c);
    printf("char:%d\n", c);
    return 0;
}

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒懂百科
2019-12-27 · TA获得超过5.9万个赞
知道大有可为答主
回答量:25.3万
采纳率:88%
帮助的人:1.3亿
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式