documentation on scanf表示格式中的任何“非空白字符”会导致该函数从流中读取下一个字符,将其与该非空白字符进行比较,如果匹配,则将其丢弃并继续执行格式的下一个字符。 如果字符不匹配,则函数失败,返回并保留未读取的流的后续字符。为什么scanf不遵循非空白字符的文档?
但是,如果我运行:
int x;
while(scanf("\n%d",&x)==1) printf("%d\n",x);
具有以下输入:
1 2
它打印:
1
2
既然没有 '\ n' 之前的任何在这两个数字中,为什么scanf会读取它们?这不是针对文档吗?
换行符被认为是空白并被scanf忽略。 –
您是否阅读过关于scanf如何处理格式中的空格的部分? – user2357112
谢谢你,明白了。空格字符部分不仅包含,还包含任何包含新行的“空白字符”。我如何将问题标记为已解决? –