C++ C++;:接受用户输入,直到收到*两*个*空行

C++ C++;:接受用户输入,直到收到*两*个*空行,c++,input,iostream,C++,Input,Iostream,我正在编写与用户输入有关的代码。我希望继续接收用户的输入,直到用户输入两个空行(用户连续两次点击两个空行的“返回”按钮,在第三次“返回”时,用户输入终止。) 到目前为止,我掌握的代码是: int number_of_empty_res = 0; string data; vector<string> myvec; while (getline(cin, data) && !data.empty()) { if (data == "&q

我正在编写与用户输入有关的代码。我希望继续接收用户的输入,直到用户输入两个空行(用户连续两次点击两个空行的“返回”按钮,在第三次“返回”时,用户输入终止。)

到目前为止,我掌握的代码是:

int number_of_empty_res = 0;
string data; 

vector<string> myvec;

while (getline(cin, data) && !data.empty())
{
    
    if (data == "")
    {
        number_of_empty_res += 1;
        myvec.push_back (data+' ');

    }
  
    if (number_of_empty_res == 2)
    {

        break;
    }
    else
    {
        number_of_empty_res = 0;
        myvec.push_back (data+' ');
        
    }
    
}


for (int i = 0; i < myvec.size(); i++)
{
    
        cout << myvec[i];
    
}
int number\u of\u empty\u res=0;
字符串数据;
载体myvec;
while(getline(cin,data)&&!data.empty())
{
如果(数据==“”)
{
_空_res+的数量=1;
myvec.push_back(数据+“”);
}
if(空的数量=2)
{
打破
}
其他的
{
_空_res的数量=0;
myvec.push_back(数据+“”);
}
}
对于(int i=0;i
int main() {
    int number_of_empty_res = 0;
    string data;

    vector<string> myvec;

    while (getline(cin, data))
    {
        if (data.empty()) {
            number_of_empty_res += 1;
            if (number_of_empty_res > 2)
            {
                break;
            }
        }
        else 
        {
            number_of_empty_res = 0;
            myvec.push_back(data + ' ');
        }

    }


    for (int i = 0; i < myvec.size(); i++)
    {

        cout << myvec[i];

    }
}
这里的问题是,如果
number\u of_empty\u res
还不是2,测试失败,因此我们意外地重置
number\u of_empty\u res


注意:如果您还没有使用调试器,那么使用调试器应该是一个好习惯。

当您尝试使用调试器跟踪程序逻辑时发生了什么?微小的挑剔:break语句应该是
if(number\u of\u empty\u res>2)
因为OP需要两条空行,在第三条空行终止。@NickReed很好,谢谢!
    if (data == "")
    {
        number_of_empty_res += 1;
        myvec.push_back (data+' ');

    }
  
    if (number_of_empty_res == 2)
    {

        break;
    }
    else
    {
        number_of_empty_res = 0;
        myvec.push_back (data+' ');
        
    }