刚刚做了下实验,事实证明scanf也不会处理'\n'的,scanf只会按格式符从缓冲区读取需要的数据,其他的是不会动的。
比如:
int a;
char c;
scanf("%d", &a);
c = getchar();
输入:123 回车
可以发现,getchar()函数没有阻塞等待用户输入,而此时若是按%c格式打印变量c,则会发现换行了
经过我后续的实验,也是可以证明,位于缓冲区队列首部,也就是scanf取缓冲区数据时第一个取到的是'\n',它是会无视的
暂时还没试 haiyangfenghuo 同学说的scanf()实参中带\n
不在的,scanf语句遇到回车符会认为一行的输入结束。前提是你的scanf语句中不出现\n,如果出现了\n,那麻烦了,回车键怎么也清不掉了。