我们如何在程序中同时使用cin和getline函数?

时间:2016-02-26 05:08:53

标签: c++

http://pastebin.com/mPp4z3LZ

上面是我的代码的链接,我应该使用类来创建在线租赁商店。在这个过程中,我应该阅读电影和演员的名字。这就是为什么我决定使用getline函数来帮助我阅读不止一个单词的原因。但我的程序只会跳过getline部分,不会让我输入电影或演员的名字。

我在读完一篇与之前发布的类似帖子后发现,在堆栈溢出时,当你将它与cin>>混合时,getline函数将无效。事实上当我只使用getline函数时将数据输入我的变量,程序运行正常。因此,我想知道是否有任何方法可以在程序中同时使用cin和getline函数。

1 个答案:

答案 0 :(得分:-1)

格式化输入(cin.operator>>)后,换行符可以留在流中。调用getline时,它会读取换行符并停在那里。每当您在ignoreoperator>>之间跳转时,您都可以使用getline

std::cin >> some_var;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::getline(std::cin, some_string);

ignore的调用将丢弃所有内容,包括下一个换行符。