【发布时间】:2015-02-20 14:39:17
【问题描述】:
我正在阅读《C++ 入门加/Stephen Prata》
这是本书的代码
while (!(cin >> golf[i])) {
cin.clear(); // reset input
while (cin.get() != '\n')
continue; // get rid of bad input
cout << "Please enter a number: ";
}
上面的代码很容易理解。
但这本书的上下文提到了
"...程序在while循环中使用cin.get()从行尾读取剩余的输入。这消除了错误的输入,以及行中的任何其他内容。 另一种方法是读取下一个空格,这样可以一次删除一个单词而不是一次一行。 最后,程序告诉用户输入一个数字。”
我想知道另一种方法是什么?
我尝试用不同的方式表达代码,但我知道这是不正确的。
while (!(cin >> golf[i])) {
cin.clear(); // resset input
char word[20];
while (cin >> word)
continue; // get rid of bad input
cout << "Please enter a number: ";
}
我如何编写代码以读取下一个空格,从而消除一次一个单词而不是一次一行的错误输入?
感谢您的阅读。
【问题讨论】:
-
您可能需要编辑问题的标题,以便在没有引用上下文的情况下有意义。
-
您可能还想看看The Definitive C++ Book Guide and List,它避免了推荐这本书(查看代码示例,我明白为什么!),链接到一个不利的评论。它建议了其他几本可能更受欢迎的初学者书籍。
-
谢谢。新标题好吗?
标签: c++