scanf里面读取格式加一个\n?

#include
int main()
{
    int a;
    scanf_s("%d\n", &a);
    printf("%d", a);
    return 0;
}

img


为什么scanf里面读取格式加一个\n,就得连输两次数字,才能打印?

  • scanf 或 scanf_s 里加了一个 换行, 会导致 后续忽略一切空白符直至下一个非空白符出现。 这就是 你为啥二次输入数字 5 ,第三次才打印。
  • 这里我们也可以验证一下忽略一切空白符,如下图:

img

  • 因为这个问题,scanf中一般避免使用换行
不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^