函数允许单词,但不允许短语c ++

时间:2019-03-22 17:41:29

标签: c++ string function

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

我的功能代码段:

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

有人知道我做错了吗?菜单将显示一个单词,但不会显示两个单词。

1 个答案:

答案 0 :(得分:0)

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

我假设您想阅读,直到用户按Enter。您想读一行。您可以使用std::getline()来实现:

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

BTW:始终在代码中显式使用std::名称空间。不要仅使用using namespace std来保留几个字符。 (代码并非(仅)关于使其与某些编译器一起使用,而是软件开发人员之间的一种交流手段。)