首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于while (getline(cin,str)) 死循环解决办法

2012-06-03 
关于while (getline(cin,str)) 死循环C/C++ code#include iostream#include vector#include stringu

关于while (getline(cin,str)) 死循环

C/C++ code
#include <iostream>#include <vector>#include <string>using namespace std; int main() {    string str;    vector<string> svec;    while (getline(cin,str))    {        svec.push_back(str);    }    for(vector<string>::size_type ix=0;ix<svec.size();ix++)    {        cout<<svec[ix]<<endl;    }    return 0;

写了一小段程序 想实现一组字符串的输入和输出(包括空格)
现在运行到 while (getline(cin,str))上死循环了 按了ctrl+z也没用 什么原因呀

[解决办法]
C/C++ code
#include <iostream>#include <vector>#include <string>using namespace std; int main() {    string str;    vector<string> svec;    getline(cin,str);    while (str!="") //空行时退出    {        svec.push_back(str);        getline(cin,str);    }    for(vector<string>::size_type ix=0;ix<svec.size();ix++)    {        cout<<svec[ix]<<endl;    }    return 0;
[解决办法]
楼上正解
istream& getline ( istream& is, string& str, char delim );
istream& getline ( istream& is, string& str );
Return Value
The same as parameter is.

返回值就是第一个参数,你这里是cin,没有输入的时候cin也不会成为NULL,这个不能成为循环退出的条件。

热点排行