我是编码c ++的初学者,我想创建一个程序,用户必须输入符合某些要求的条件。如果用户输入的年龄小于或等于0,当询问年龄时,如何让输出返回原始问题?或者以下代码是否正确? 1
答案 0 :(得分:1)
在向Stack Overflow提问之前,您应该阅读手册,但这是您的第一个问题,我将指导您朝着正确的方向前进。这些是您应该阅读以解决问题的链接:
https://www.cprogramming.com/tutorial/lesson2.html
https://www.cprogramming.com/tutorial/lesson3.html
https://www.tutorialspoint.com/cplusplus/cpp_basic_input_output.htm
现在,至于您的代码,我将修改您的代码:
int donorAge = 0;
while (donorAge <= 0) {
std::cout << "Age: ";
std::cin >> donorAge;
if (donorAge <= 0) {
std::cout << "--- You must enter a valid age.\n";
}
}
if语句只运行一次,但while循环继续运行,直到满足条件。你需要第二个这个。
注意: 如果用户输入字符或字符串,此解决方案将失败,但您不必担心当前级别,只是想一想。
你不应该是using namespace std。
此外,以您的方式编写if语句是不好的做法,例如:
if ( donorAge <= 0)
应为if (donorAge <= 0)
。注意到我擦除了那个流浪的空间?
另一件事,std::cin.ignore()
并没有“扔掉”。它实际上做的是忽略流的第一个字符(在这种情况下是终端或命令行)。当您按Enter键时,您正在输入的换行符'\n'
,您将使用std::cin.ignore()
忽略它。在没有必要将数字作为输入时,您不必这样做,但是当您开始使用字符串时,有必要这样做。
再次阅读手册并在询问有关SO的问题之前进行研究。这就是为什么你有许多downvotes,也很可能我会回答你的问题。