C++ stringstream.good()>;VS和Eclipse编译器中的不同行为
我对stringstream的理解有一些问题 示例:C++ stringstream.good()>;VS和Eclipse编译器中的不同行为,c++,eclipse,visual-studio-2005,stringstream,C++,Eclipse,Visual Studio 2005,Stringstream,我对stringstream的理解有一些问题 示例: stringstream stream(commands); while (true) { string line; getline(stream, line); if (!stream.good()) break; if (line.size() > 0){ lines.push_back(line);
stringstream stream(commands);
while (true) {
string line;
getline(stream, line);
if (!stream.good())
break;
if (line.size() > 0){
lines.push_back(line);
}
else{
break;
}
}
如果我在Eclipse中使用这段代码,那就没有问题,它可以按预期工作。
在vistualstudio2005stream.good()中使用此选项似乎总是返回false
为什么?
我非常感谢您的解释。结束这个问题:
stringstream stream(commands);
while (true) {
string line;
getline(stream, line);
if (!stream.good())
break;
if (line.size() > 0){
lines.push_back(line);
}
else{
break;
}
}
比如,etarion说这只是good()
方法的问题。使用其他一些机制可以很好地工作。
谢谢你的帮助 你可以把整个代码换成4行代码,你知道的…-使用.good()几乎从来都不是一个好主意。使用流状态,GETLIN返回流。给我一个瞬间,我正在尝试追踪另一个有线C++的东西…似乎起作用。但是我想知道为什么good()方法不好用?