为啥输入语句scanf带'\n'时,按回车程序不运行
为啥输入语句带'\n'时,按回车程序不运行,还得随便输入一个字母,再 按回车才运行
原因:
\n在scanf格式串中不表示等待换行符,而是读取并放弃连续的空白字符。(事实上,scanf格式串中的任何空白字符都表示读取并放弃空白字符。而且,诸如%d这样的格式也会丢掉前边的空白,因此你通常根本不需要在scanf格式串中加入显式的空白。)
因此,“%d\n”中的\n会让scanf读取到非空白字符串为止,而它可能需要读到下一行才能找到这个非空白字符串。这种情况下,去掉\n仅仅使用“%d”即可(但你的程序可能需要跳过那个没有读入的换行符。)
参考:《你必须找到的495个C语言问题》
——Steve Summit著
——孙云,朱群英 译
——人民邮政出版社
摘自:https://hi.bccn.net/space-549273-do-blog-id-33963.html