图中的写法是不是有问题,我安照图中给scanf中加了\n 结果输入完回车,收到的反应是换行而不是结束输入。我把 \n删除后就一切正常。图中例子中:请输入一个整数值:11 然后输入回车 并没有结束输入只是换了行,我再输入其他的一个字母再回车就结束了。不知道在这期间程序内部是怎么进行的?为什么会这样。
scanf函数scanf("%d\n")这样用法:
首先匹配第一个非空格的数读入,\n在scanf函数中与空格,tab键都是表示空格。
scanf匹配规则是,空格可以匹配任意个用户输入的空格,所以直到用户输入下一个非空格的字符。scanf才会停止用户输入。
首先匹配第一个非空格的数读入,\n在scanf函数中与空格,tab键都是表示空格。
scanf匹配规则是,空格可以匹配任意个用户输入的空格,所以直到用户输入下一个非空格的字符。scanf才会停止用户输入。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2016-09-19
如果你写scanf("%d\n")那么程序会照格式读入一个数字外加一个换行符。所以你输入的11和回车符被读入到了scanf的字符串中,而此时还差一个回车符来结束scanf的读入,所以你还需要再敲一次回车。追问
你没有跑一下程序吧?这个程序在编译运行时如果和图中scanf函数那样有\n ,的话是结束不了输入的,按回车不管用。我想知道为甚么,按回车不管用》?
本回答被网友采纳第2个回答 2018-02-07
简单的讲,匹配空白字符时,多个空白字符也当一个处理。
空白字符包括 空格,回车,换行,分页等。本回答被网友采纳
空白字符包括 空格,回车,换行,分页等。本回答被网友采纳