【发布时间】:2017-09-06 11:34:39
【问题描述】:
我想将字符串中的几行输入放入向量(或数组)中。我用 getline() 收集字符串,当收集完所有行后,我希望打破 while 循环。我尝试使用“if (line.empty)”然后中断,但它不起作用。我做错了什么?
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> lines;
string line;
while (getline(cin >> ws, line))
{
if (!line.empty())
{
lines.push_back(line);
}
if (line.empty())
break;
}
cout << "Done";
return 0;
}
【问题讨论】:
-
顺便说一句,您不需要在每个循环中调用
line.empty两次。你检查它是否不是空的。如果那是假的,那么它一定是空的。将循环中的第二个if更改为else。可能不会解决您的问题,但应该指出。此外,永远不要省略花括号。如果使用不当,最终会咬你,这是一个坏习惯。