上面是我的代码的链接,我应该使用类来创建在线租赁商店。在这个过程中,我应该阅读电影和演员的名字。这就是为什么我决定使用getline函数来帮助我阅读不止一个单词的原因。但我的程序只会跳过getline部分,不会让我输入电影或演员的名字。
我在读完一篇与之前发布的类似帖子后发现,在堆栈溢出时,当你将它与cin>>混合时,getline函数将无效。事实上当我只使用getline函数时将数据输入我的变量,程序运行正常。因此,我想知道是否有任何方法可以在程序中同时使用cin和getline函数。
答案 0 :(得分:-1)
格式化输入(cin.operator>>
)后,换行符可以留在流中。调用getline
时,它会读取换行符并停在那里。每当您在ignore
和operator>>
之间跳转时,您都可以使用getline
。
std::cin >> some_var;
std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
std::getline(std::cin, some_string);
对ignore
的调用将丢弃所有内容,包括下一个换行符。