有关 scanf()函数的问题
程序代码:#include <stdio.h>
int main(void)
{
int i = 0;
int j = 0;
int k = 0;
scanf_s("%d\n%d\n%d", &i, &j, &k, 3);
printf("%d, %d, %d\n", i, j, k);
//scanf_s("%d\n", &i, 1);
//printf("%d\n", i);
return 0;
}我想请问一下,为什么第一个scanf_s()中输入3个数时,要敲入 空格 或 回车 才可以正确存储,如果在3个数字中插入两个‘\n’,那么仅能存储第一个数字,其他没有被存储,还是初始化时的值。
但是第二个scanf_s()中,输入一个数字后为什么必须要输入‘\n’再敲 回车 才能存储?
看《C语言入门经典》到第10章,发现细节太多,看的比前面任何一章都辛苦,进度很慢,想请问一下图片中划线部分到底什么意思?说好的可以忽略空白字符,那为什么第二个scanf_s()中的 \n 没有被忽略?










用换行符或其他的目的是为了不让计算机将原本想输出输出都是三个的数据而变成了一个数据输出,它与字符中的/0 含义很相似。