c语言 scanf里面为什么只有按回车才能出结果?

如题所述

C语言中, 输入并不是实时被scanf响应的.
而是先存在缓冲中.
只有当遇到换行/缓冲满/程序结束几种情况之一时,才会被送到scanf.
所以 为了让scanf收到数据,就必须加回车.追问

大神请问一下
%s 为什么不能输出空白字符

追答

%s可以输出空白字符的. 比如 printf("%s\n", "abcd efgh"); 中间的空格会被输出.
%s不能输入空白字符, 这个是scanf的读取规则限制的, scanf读入%s时, 遇到空白字符就认为输入结束了.

追问

scanf(%s,a b);那么b就输出不到吗?

温馨提示:答案为网友推荐,仅供参考
相似回答