用循环让scanf函数输入字符串的问题
各位大神,小弟请教一个问题,代码如下:
1 #include<stdio.h>
2 #include<unistd.h>
3 int main()
4 {
5 char ch;
7 printf("请输入一些列字符:");
8 while(1)
9 {
10 scanf("%c",&ch);
11 if(ch=='\n')
12 break;
13 printf("%c",ch);
15 sleep(3);
16 }
19 return 0;
20 }
在linux下运行,现在假如输入abcd,程序会等待12秒后,直接输出abcd;输出abcd时字母之间没有停顿3秒。。
如果将第13行printf函数中加一个'\n',
即将第13行改为printf("%c\n",ch)后,程序会先输出a,换行然后等待3秒输出b,换行再等3秒输出c,换行等3秒输出d。
请问一下大神为什么有这种区别?麻烦帮忙解决一下我的疑问,先谢谢各位大神了。