0

当我只按回车而不输入任何内容时,getline()函数也会收到空白输入。如何修复它以不允许空白输入(有字符和/或数字和/或符号)?

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

    getline(cin, input);

    return input;
}    
4

3 回答 3

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;
}
于 2013-07-28T09:20:33.000 回答
2

试试这个:

while(getline(cin, input))
{
   if (input == "")
       continue;
}
于 2013-07-28T09:19:47.293 回答
2
string Keyboard::getInput() const
{
    string input;
    while (getline(cin, input))
    {
        if (input.empty())
        {
            cout << "Empty line." << endl;
        }
        else
        {
            /* Some Stuffs */
        }
    }
}
于 2013-07-28T09:21:34.330 回答