我希望将字符串中的几行输入转换为向量(或数组)。我用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;
}
答案 0 :(得分:0)
你可以尝试这样的东西,因为你正在尝试字符串然后长度函数更好地工作。代码......
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
vector<string> lines;
string line;
while (getline(cin >> ws, line))
{
if (!line.length())
break;
lines.push_back(line);
}
for(int i=0;i<lines.size();i++)cout<<lines[i]<<endl;
return 0;
}
如果您在阅读多个输入时遇到问题,请在循环开始时使用cin&gt;&gt; ws(空格)。
输入
asds as
dsaf asd
asdasd dsa
fadsa asd
fasd sad
afdas asd
输出
asds as
dsaf asd
asdasd dsa
fadsa asd
fasd sad
afdas asd