函数允许单词但不允许短语c ++ [重复]

Posted

技术标签:

【中文标题】函数允许单词但不允许短语c ++ [重复]【英文标题】:Function allows word but not Phrase c++ [duplicate] 【发布时间】:2019-03-22 17:41:28 【问题描述】:

我有一个功能,允许用户输入一个单词或短语,然后将其显示在菜单上,但由于某种原因,它会显示一个单词而不是短语,当我使用多个单词时系统崩溃

我的函数代码的sn-p:

string GetWord(void)
    string localString = "";
    cout<< "please enter a new word or phrase: ";
    cin >> localString;
    return localString;

有谁知道我做错了什么?菜单将显示单个单词,但不会显示两个单词。

【问题讨论】:

【参考方案1】:

std::cin 上的输入运算符 &gt;&gt; 在第一个空格处停止读取,因此只读取一个单词。这是定义的行为。

我假设您想阅读直到用户按下回车键。你想读一行。您可以使用std::getline() 来实现:

std::string GetWordOrPhrase() 
    std::string localString;
    std::cout << "please enter a new word or phrase: ";
    std::getline(std::cin, localString);
    return localString;

顺便说一句:始终在代码中明确使用 std:: 命名空间。不要使用using namespace std 来保留几个字符。 (代码不仅(仅)用于使其与某些编译器一起工作,而且还是软件开发人员之间的一种交流方式。)

【讨论】:

你好,我尝试使用你的方法,但它不允许我使用该功能,只是回到菜单选项。然后我在 getline() 上方添加了一个 void 参数和 cin >> 本地字符串,但这次它只会显示菜单中的第二个单词。

以上是关于函数允许单词但不允许短语c ++ [重复]的主要内容,如果未能解决你的问题,请参考以下文章