带空格的C ++输入字符串

ste*_*yon 2 c++

我正在编写一个程序,需要用户输入。我需要输入在单词之间包含空格。我在寻找解决方案时遇到了麻烦。在您提出问题之前,我已经在stackoverflow上尝试了其他多个问题,其中同一问题。这些是我尝试过的一些。 如何在C ++中cin空间?

std :: cin输入带有空格?

C ++中的noskipws演示

Noskipws对cin的作用>>

我的代码的问题在于,一旦调用我的setBusinessName方法,它便会自动完成。它输出然后返回自身,而无需等待我输入数据。需要帮助...

string setBusinessName()
{
    string name = "";
    cout << "The name you desire for your business:";
    getline(cin, name, '\n');
    cout << name;
    return name;
}
Run Code Online (Sandbox Code Playgroud)

Jac*_*des 5

我无法发表评论,没有足够的分数,但是您是否尝试cin.ignore();在之前添加getline(cin, name, '\n');?

像这样:

string setBusinessName()
{
    string name = "";
    cout << "The name you desire for your business:";
    cin.ignore();
    getline(cin, name, '\n');
    cout << name;
    return name;
}
Run Code Online (Sandbox Code Playgroud)

  • 虽然我很确定这可以解决OP的问题,但在一般情况下这是一个坏主意。如果缓冲区中没有悬挂的空白,那么您只是吃了有效的输入。最好将 `ignore` 放在 `&gt;&gt;` 之后,您知道应该有 EOL,并将 `ignore()` 升级为 `cin.ignore(numeric_limits&lt;streamsize&gt;::max(), '\n'); ` 只是为了确保除了 EOL 之外没有空格或其他东西。 (2认同)