scanf会读取换行符和空格吗?还是读取换行符和空格后将它们丢弃?

如题所述

这个是分情况的。
有一个特殊的格式 %c
当%c格式的时候,会读取任何字符,包括换行和空格。

当其他格式的时候(不包括正则表达式), 如果空格或者换行出现在前面,会被读取并抛弃
在后面的时候,不会读取,而只是检测。

比如
缓冲中是 空格123空格
以%d读取, 那么第一个空格会被抛弃。读入123三个数值,发现下一个是空格,那么停止。
但是这个结尾的空格 还在缓冲区里面。

正则表达式的时候,看正则写法,决定是否抛弃。来自:求助得到的回答
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-17
如果是%d、%f读入数值类型,会自动跳过多余的空格和换行,如果是%s遇到空格和换行会停止,如果是%c就可以读入空格和换行。本回答被网友采纳
相似回答