如何使用getline()避免空白输入?

时间:2013-07-28 09:17:09

标签: c++

当我在没有任何输入的情况下按Enter键时,getline()功能也会收到空白输入。如何修复它不允许空白输入(有字符和/或数字和/或符号)?

string Keyboard::getInput() const
{
    string input;

    getline(cin, input);

    return input;
}    

3 个答案:

答案 0 :(得分:3)

只要输入为空,您就可以继续重新执行getline。例如:

string Keyboard::getInput() const
{
    string input;

    do {
      getline(cin, input);    //First, gets a line and stores in input
    } while(input == "")  //Checks if input is empty. If so, loop is repeated. if not, exits from the loop

    return input;
}

答案 1 :(得分:2)

试试这个:

while(getline(cin, input))
{
   if (input == "")
       continue;
}

答案 2 :(得分:2)

string Keyboard::getInput() const
{
    string input;
    while (getline(cin, input))
    {
        if (input.empty())
        {
            cout << "Empty line." << endl;
        }
        else
        {
            /* Some Stuffs */
        }
    }
}