关于getchar的疑惑

最近做了一道题,我的代码有片段是这样的

while(scanf("%d",&n))

{

if(n==0&&getchar()=='\n')

break;

...

我的本意是想当输入数字0且输入回车即退出循环,但是运行发现虽然输入0\n循环能退出,但是结果的数值发生了改变,出错了

后来有学长帮忙改,发现改成如下代码结果就不会发生改变

while(scanf("%d",&n))
{
    char x=getchar();
    if(n==0&&x=='\n')
 break;

...

请问这里有什么区别吗?

大一菜鸡,求各位大佬帮忙

posted @ 2020-04-01 17:46  Tina_xiao  阅读(108)  评论(0)    收藏  举报