gpt4 book ai didi

C++询问用户输入是否正确错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:57:30 27 4
gpt4 key购买 nike

我正在尝试添加代码,这样如果用户输入错误,他们可以返回程序并重新输入,但我不确定我找到和使用的代码是否正确。这是我的功能:

/********************************************/
// Name: inspools /
// Description: Ask for and get number of /
// spools /
// Parameters: N/A /
// Reture Value: spoolnum /
/********************************************/
int spoolnum()
{
int spoolnum;
char type;

cout << "Number of spools to be shipped: " << endl;
cin >> spoolnum;
cout << spoolnum << " spool(s) of wire will be shipped" << endl;
cout << "Is this correct? [y/n] ";
cin >> type;
if ('n') << spoolnum;

if ('y') break;

return spoolnum ;
}

最佳答案

你说你搜索循环,但我不相信。我想你在编程方面还很陌生。我会先给你答案,但不是没有一些解释。

While 循环的工作原理

来自 Wikipedia :

enter image description here

In most computer programming languages, a while loop is a control flow statement that allows code to be executed repeatedly based on a given boolean condition. The while loop can be thought of as a repeating if statement.

你的问题

您的问题是您想让用户一直输入选择,直到他们输入 y .为此,您至少需要一个 WHILE循环,或者正如其他评论者所说的那样 DO/WHILE循环。

我从来没有喜欢过DO/WHILE循环,但其他人确实更喜欢它。

以下代码可能会遇到的问题是您拥有的不仅仅是y。返回 cin例如换行符 ( \n ) 字符。你将不得不处理这种情况。

int spoolnum()
{
int spoolnum = 0;
char type = 'n';

while (type != 'y') {
cout << "Number of spools to be shipped: " << endl;
cin >> spoolnum;
cout << spoolnum << " spool(s) of wire will be shipped" << endl;
cout << "Is this correct? [y/n] ";
cin >> type;
}
return spoolnum;
}

或替代 DO/WHILE :

int spoolnum()
{
int spoolnum = 0;
char type = 'n';

do {
cout << "Number of spools to be shipped: " << endl;
cin >> spoolnum;
cout << spoolnum << " spool(s) of wire will be shipped" << endl;
cout << "Is this correct? [y/n] ";
cin >> type;
} while (type != 'y');

return spoolnum;
}

在上面的代码中,我删除了你的 if ('n') << spoolnum;因为坦率地说,这没有意义

我还删除了 if ('y') break;因为while(...)一旦满足条件,循环就会中断,即 type equal to 'y' .

关于C++询问用户输入是否正确错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7720332/

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