C++问getline(cin,temp,' ')

来源:百度知道 编辑:UC知道 时间:2024/06/03 17:31:46
C++中getline(cin,temp,' ')的返回值是什么啊,有一句while(getline()),不知道什么时候是假啊?
#include <vector>
#include <algorithm>
#include <iterator>
//#pragma warning(disable:4786)
#include <string>
#include <iostream>
#include <functional>

using namespace std ;

void main()
{
vector<string> V;
string tmp;
while(getline(cin,tmp,' '))
V.push_back(tmp);
sort(V.begin(),V.end(),greater<string>());
copy(V.begin(),V.end(),ostream_iterator<string>(cout,":"));
}
谁看一下怎么输入结束啊
没有人知道吗

istream::getline
istream& getline( char* pch, int nCount, char delim = '\n' );
istream& getline( unsigned char* puch, int nCount, char delim = '\n' );
istream& getline( signed char* psch, int nCount, char delim = '\n' );

第三个没有使用默认参数,遇到空格,输入流就结束了。

查看文档可以知道getline返回的是一个basic_istream&类型,即以输入流类型的引用,因为流失不能被复制的。
至于while何时为真或为假,取决于流的状态(一个流类型的iostate的值),有badbit,failbit,和eofbit,如果流正常,则返回true,否则为false。

你参考一下