我试图从用户那里接受一个短语并反转单词的顺序并将其打印出来。例如"你好世界"成为世界你好"。
我在这里找到了与我类似的其他问题,其中大部分是" up-voted"答案建议这样做:
std::list<std::string> input;
std::list<std::string>::iterator iter;
std::string phrase;
std::string word;
std::cout << " Enter the phrase you wish to reverse " << std::endl;
std::cout << " >> ";
std::getline(std::cin, phrase);
std::istringstream iss(phrase);
while (iss >> word) {
input.push_front(word);
}
for (iter = input.begin(); iter != input.end(); ++iter) {
std::cout << *iter << " ";
}
但是,这对我不起作用。当我运行代码时,它永远不会停止允许输入。我无法弄清楚为什么它不允许我输入输入。
我该怎么做才能输入一个短语并让程序逐字阅读?
编辑:我正在使用MS Visual Studio 2015并使用debug(f5)选项进行编译。
答案 0 :(得分:1)
事实证明在输入流中有一个迷路的“\ n”,我只是叫
std::cin.get();
摆脱它。
我认为可能是这种情况,但我想不出如何“刷新”输入流,因为没有cin的flush方法。
非常感谢Ankur Jyoti Phukan的帮助!