scanf()函数的\n问题。 无法结束scanf的输入。我就想知道为甚么会这样?程序内部是怎么执行的?

图中的写法是不是有问题,我安照图中给scanf中加了\n 结果输入完回车,收到的反应是换行而不是结束输入。我把 \n删除后就一切正常。图中例子中:请输入一个整数值:11 然后输入回车 并没有结束输入只是换了行,我再输入其他的一个字母再回车就结束了。不知道在这期间程序内部是怎么进行的?为什么会这样。

scanf函数scanf("%d\n")这样用法:
首先匹配第一个非空格的数读入,\n在scanf函数中与空格,tab键都是表示空格。
scanf匹配规则是,空格可以匹配任意个用户输入的空格,所以直到用户输入下一个非空格的字符。scanf才会停止用户输入。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-09-19
如果你写scanf("%d\n")那么程序会照格式读入一个数字外加一个换行符。所以你输入的11和回车符被读入到了scanf的字符串中,而此时还差一个回车符来结束scanf的读入,所以你还需要再敲一次回车。追问

你没有跑一下程序吧?这个程序在编译运行时如果和图中scanf函数那样有\n ,的话是结束不了输入的,按回车不管用。我想知道为甚么,按回车不管用》?

本回答被网友采纳
第2个回答  2018-02-07
简单的讲,匹配空白字符时,多个空白字符也当一个处理。
空白字符包括 空格,回车,换行,分页等。本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网