为什么在while(1)中getchar()可以接受字符串?望高手指点。。
#include<stdio.h>
main()
{
char c;
while(1)
{
c=getchar();
printf("%c",c);
}
}
为什么在while(1)中getchar()可以接受字符串?望高手指点。。
#include<stdio.h>
main()
{
char c;
while(1)
{
c=getchar();
printf("%c",c);
}
}
在一次循环中就输出c,为什么没有截断字符串而将整串字符输出来?
接收的时候循环起作用吗?程序是读取所有字符串然后一次输出的啊。那个printf为什么可以输出字符串,不是%c吗?迷惑中。
明白了。
在第一次getchar()时,数据存入缓冲区中,然后输出一个字符。
继续循环,但缓冲区还有数据,然后继续输出字符,直到缓冲区中的数据输出完毕。
继续循环,可以getchar()了.
include<stdio.h>
main()
{
char c;
while(1)
{
c=getchar();
printf("#");//sign!
printf("%c",c);
}
}
[此贴子已经被作者于2007-11-18 17:38:45编辑过]
接收的时候循环起作用吗?程序是读取所有字符串然后一次输出的啊。那个printf为什么可以输出字符串,不是%c吗?迷惑中。
它是接收一个字符就立马输出,再更新再输出.
为什么在while(1)中getchar()可以接受字符串?望高手指点。。
#include<stdio.h>
main()
{
char c;
while(1)
{
c=getchar();
printf("%c",c);
}
}
// 输出一行:因为输入后需要按回车确认输入。(比较简单的说法)//
系统把输入的字符放在缓冲区中,按回车就刷新缓冲区,
这个也有助于输入确认,方便修改输入。
标准IO函数都使用缓冲区,当缓冲区满或按回车时刷新缓冲区。