getchar()按顺序从缓冲区读走一个字符,相当于清除缓冲区,每读取一次缓冲区少一个字符,
例如:键盘输入数据 1 2 3 4 5 回车
输入缓冲区中数据:1 2 3 4 5 回车
点击回车后,getchar()开始从缓冲区中读取字符,一次读取一个
第一次 getchar() = '1', 缓冲区数据还有:2 3 4 5
第二次 getchar() = '2', 缓冲区数据还有:3 4 5
第二次 getchar() = '3', 缓冲区数据还有:4 5
...
直到缓冲区中的数据被读取完
int i=0; //初始化
while( (a[i++]=getchar()) != '#')
的过程相当于
do
{
a[i] = getchar();
i++;
}
while(a[i-1] != '#') //这个地方懂吧
希望对你有帮助!!
int main()
{
int i = 0;
char a[9],ch;
while((ch = getchar())!='#')a[i++]=ch;//getchar赋值给ch,进入循环;
a[--i] = '\0';//加上
return 0;
}
i的初值。。。。