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

cin的问题

墨香555 发布于 2011-09-11 16:18, 442 次点击
请问(A)处的cin代表什么意思啊
int main()
{
    using namespace std;
    char input[Arsize];
    char next;
    cout<<"enter a line: \n";
    cin.get(input,Arsize);
    while(cin)                                         (A)
    {
        cin.get(next);
        while(next!='\n')
            cin.get(next);
        strcount(input);
        cout<<"enter next line(empty line to quit): \n";
        cin.get(input,Arsize);
    }
    cout<<"Bye\n";
    return 0;
}
4 回复
#2
八画小子2011-09-11 17:02
如果输入成功
#3
xg56992011-09-11 18:22
cin它是一个全局对象,只要程序头文件包含iostream时就可以使用它
从你的程序可以看出你用cin对象调用了get函数,该函数的原形是
istream &get(char *buffer, streamsize num);// 读取字符buffer,直到num-1个字符被读入,或者碰到EOF或换行标志
由此可见get函数返回一个对象,代表可以基连.
而cin又是一个对象,它永远都是拥有数值的,你的程序中
while(cin)
意思就是无限循环 和while(1)的意思一样
因为cin是个全局对象,永远拥有数值,如果不信你可以做下实验
cout<<cin<<endl;
或者while(cin){cout<<1<<endl;}
如果get函数接受了一个结束标志 比如ctrl+z 就会终止循环而while(1)则不会

[ 本帖最后由 xg5699 于 2011-9-11 22:04 编辑 ]
#4
晴天一阵2011-09-11 19:53
输入成功则条件为真
#5
墨香5552011-09-14 18:10
1到3处代码的意思不清楚
1到3处的代码在程序中是什么意思啊,谁能帮我解释下
int main()
{
    using namespace std;
    char input[Arsize];
    char next;
    cout<<"enter a line: \n";
    cin.get(input,Arsize);
    while(cin)                                       
    {
        cin.get(next);                              1
        while(next!='\n')                           2
            cin.get(next);                          3
        strcount(input);
        cout<<"enter next line(empty line to quit): \n";
        cin.get(input,Arsize);
    }
    cout<<"Bye\n";
    return 0;
}
1