注册 登录
编程论坛 C++教室

for循环的输出问题。有兴趣的看一下。

gyx8899 发布于 2010-02-11 11:18, 643 次点击
#include<iostream>
using namespace std;
void main()
{
    char c;
    for(;(c=getchar())!='\n';)
        cout<<c;
    cout<<endl;
}
输入为:c
输出为:c
但当是:computer
输出为:computer
这是怎么回事?
4 回复
#2
木瓜君2010-02-11 11:50
与getchar()函数机制有关,getchar()函数获取字符时,把字符放到缓冲区,遇到回车时,才送给计算机处理~
所以,在遇到回车之前,缓冲区已经有c、o、m、p、u、t、e、r,计算机处理时,一个一个字符地处理,即,cout << c; 所以把一个一个字符输出,就会出现上面的情况
#3
pangding2010-02-12 09:33
楼主期望的是什么样子?
#4
gyx88992010-02-12 10:06
回复 3楼 pangding
怎么不是
ccoommppuutteerr
呢?
#5
pangding2010-02-12 10:28
哦,原来是这样。就是因为有缓冲,2楼解释的是对的。
1