我有一个功能,允许用户输入一个单词或短语,然后在菜单上显示它,但是由于某种原因,它将显示一个单词但不显示短语,当我使用多个单词时系统崩溃
我的功能代码段:
string GetWord(void){
string localString = "";
cout<< "please enter a new word or phrase: ";
cin >> localString;
return localString;
}
有人知道我做错了吗?菜单将显示一个单词,但不会显示两个单词。
答案 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
来保留几个字符。 (代码并非(仅)关于使其与某些编译器一起使用,而是软件开发人员之间的一种交流手段。)