gpt4 book ai didi

c++ - 优雅地检查用户输入是否有错误

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:25:26 25 4
gpt4 key购买 nike

我的程序等待用户输入,并在适当的时候处理它。我需要检查用户输入以确保它满足特定条件,如果不满足所有这些条件,它将被拒绝。

伪代码是这样的:

if (fulfills_condition_1)
{
if (fulfills_condition_2)
{
if (fulfills_condition_3)
{
/*process message*/
}
else
cout << error_message_3; //where error_message_1 is a string detailing error
}
else
cout << error_message_2; //where error_message_2 is a string detailing error
}
else
cout << error_message_1; //where error_message_3 is a string detailing error

这些条件的数量可能会增加,我想知道是否有一种更简洁的方法来表示它,使用开关或类似的东西而不是大量级联 if 语句.

我知道有可能用

if (fulfills_condition_1 && fulfills_condition_2 && fulfills_condition_3)
/*process message*/
else
error_message; //"this message is not formatted properly"

但是这个没有第一个有用,也没有说问题出在哪里。

条件可以粗略地按重要性递增排列,即检查 condition_1 比检查 condition_3 更重要,因此 if 语句可以工作 - 但通常有更好的方法吗?

最佳答案

怎么样

if (!fulfills_condition_1) throw BadInput(error_message_1);
if (!fulfills_condition_2) throw BadInput(error_message_2);
if (!fulfills_condition_3) throw BadInput(error_message_3);

/* process message */

然后您的异常处理程序可以报告错误消息,并根据需要重试或中止。

关于c++ - 优雅地检查用户输入是否有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15404765/

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