4

我不明白为什么可能需要两次,这是我正在阅读的书中的引述;

cin.get() 语句读取下一次击键,因此该语句使程序等待,直到您按下 Enter 键。(在您按下 Enter 之前,不会将击键发送到程序,因此按下另一个键是没有意义的。)如果程序在常规输入后留下未处理的击键,则需要第二条语句。例如,如果您输入一个数字,您键入该数字,然后按 Enter。程序读取该数字但未处理 Enter 键击,然后由第一个 cin.get() 读取。

我将它放在源代码中,并没有看到它存在两次的意义。

您输入一些数字并按Enter键结束程序,唯一不同的是如果在结束前没有输入任何内容,则按两次Enter。

它的目的是暂停程序,它这样做了,为什么要使用它两次呢?

4

1 回答 1

9

cin.get();从输入中检索单个字符。因此,如果您有5\n\n相当于按ENTER)输入,cin.get();将返回5,另一个cin.get();将返回\n。如果您一个接一个地阅读多个数字,比如说while循环,如果您忘记了\n字符,您可能会遇到问题。

cin.ignore(256, '\n');一旦你读完你想要或关心的字符,使用也可以纠正这个问题。

于 2012-05-18T16:21:51.637 回答