函数允许单词但不允许短语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
上的输入运算符 >>
在第一个空格处停止读取,因此只读取一个单词。这是定义的行为。
我假设您想阅读直到用户按下回车键。你想读一行。您可以使用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 ++ [重复]的主要内容,如果未能解决你的问题,请参考以下文章
用空格(或任何字符)将文本单元格拆分为任意数量的单词,重复单词