c++ 在getline循环中中断

lokaqttq  于 2023-04-01  发布在  其他
关注(0)|答案(1)|浏览(128)

我想把字符串中的几行输入放到一个向量(或数组)中,我用getline()收集字符串,当所有行都被收集后,我想中断while循环,我尝试用“if(line.empty)”then break,但它不起作用,我做错了什么?

#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;
}
ukdjmx9f

ukdjmx9f1#

你可以尝试这样的东西,因为你正在尝试字符串然后长度函数工作得更好。代码去...

#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〉〉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

相关问题