gpt4 book ai didi

c++ - boolean 循环和 switch 语句

转载 作者:太空宇宙 更新时间:2023-11-04 16:19:14 24 4
gpt4 key购买 nike

我正在尝试验证用户是否输入了正确的字符。我假设已经输入了一个字符。

问题:当我第一次输入“f”时,返回了 carSize,一切正常,代码继续正确运行。如果我先输入“d”,“您没有输入正确的值...”会正确显示,但是当我再次输入正确的值(例如“f”)时,它只会不断重复“您有没有输入正确的值”并等待另一个响应。在那之后,无论输入什么,它都会吐出回复信息,就好像答案不正确一样。这相当简单,我一辈子都弄不明白我到底做错了什么。我是初学者,所以也许我在函数中错误地使用了“大小”?任何帮助将不胜感激。

这是我的代码:

const string RENTAL_DAYS = "Enter number of days rented: ";

cout << RENTAL_DAYS;
cin >> rentalDays;
rentalDays = correctNumberCheck(rentalDays, RENTAL_DAYS);


char rentalSizeCheck(char size, string question) {

bool notValid = true;
size = toupper(size);

while(notValid) {

switch (size) {

case 'C':
notValid = false;
break;
case 'M':
notValid = false;
break;
case 'F':
notValid = false;
break;
case 'S':
notValid = false;
break;
default:
cout << "You have not entered in a correct value "
<< ", please try again" << endl;
cout << question;
cin >> size;
}// Close switch
} // Close while loop
return carSize;
}

最佳答案

你的问题是你在循环外调用 toupper(),所以你第二次得到你的输入时,它仍然是小写的,并且没有捕捉到循环中的任何条件。

关于c++ - boolean 循环和 switch 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19150602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com