
c语言中getchar()的用法
输入的是1空格+空格3是运行时两空格都被读入?还是。。输入的也是1空格+空格3是运行时前一个空格被读入,后一个空格被赋予c?还是。。。c的类型不一致时为何运行结果不一致?...
输入的是1空格+空格3
是运行时两空格都被读入?还是。。
输入的也是1空格+空格3
是运行时前一个空格被读入,后一个空格被 赋予c?还是。。。
c的类型不一致时为何运行结果不一致? 展开
是运行时两空格都被读入?还是。。
输入的也是1空格+空格3
是运行时前一个空格被读入,后一个空格被 赋予c?还是。。。
c的类型不一致时为何运行结果不一致? 展开
15个回答
展开全部
是这样的,你要进行下面的程序,就得按下回车键使输入生效,这样就输入了'\n'
循环就退出了
循环就退出了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
建议你去看看关于输入输出的资料,这也是c相对比较难的地方,
getchar();永远只向缓存中输入一个字符,
在你举的例子中(9)步其实只是向缓存中存入的用户输入的第一个字母,
正常说是f
但在c中回车符也算个字符
如果没有(11)
再第二次循环中 (9)步向缓存中递交的并不是用户输入的字符
而是用户第一次打入的回车符
导致循环停止
getchar();的用法很多;
一种就是你这个程序用到的清空回车符 这种情况一般发生在在循环中涉及到输入的情况
还有一种是某些编译平台(IDE)在运行程序时并没有在程序运行后给人看结果的时间 这时候 在程序最后加上getchar()就能造成程序的暂停 给程序员度结果的机会
getchar();永远只向缓存中输入一个字符,
在你举的例子中(9)步其实只是向缓存中存入的用户输入的第一个字母,
正常说是f
但在c中回车符也算个字符
如果没有(11)
再第二次循环中 (9)步向缓存中递交的并不是用户输入的字符
而是用户第一次打入的回车符
导致循环停止
getchar();的用法很多;
一种就是你这个程序用到的清空回车符 这种情况一般发生在在循环中涉及到输入的情况
还有一种是某些编译平台(IDE)在运行程序时并没有在程序运行后给人看结果的时间 这时候 在程序最后加上getchar()就能造成程序的暂停 给程序员度结果的机会
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
getchar不要也可以,建议不要,因为没什么意义;
你的程序中getchar运行了的,在输入数字后按的那个enter键就运行了getchar();
但我们一般编写时都没要。
scanf("%d/%d",&a,&b);
有一点小错,应该把"/"删除,改为
scanf("%d%d",&a,&b);或
scanf("%d %d",&a,&b);
程序输出才正确,否则无论你输入什么,输出都为0,你可以试试
你的程序中getchar运行了的,在输入数字后按的那个enter键就运行了getchar();
但我们一般编写时都没要。
scanf("%d/%d",&a,&b);
有一点小错,应该把"/"删除,改为
scanf("%d%d",&a,&b);或
scanf("%d %d",&a,&b);
程序输出才正确,否则无论你输入什么,输出都为0,你可以试试
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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;
}
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询