我有一个包含 4 个变量的方程式,我提示用户输入这些变量中的每一个,然后程序根据输入的变量来决定它需要求解哪些变量。例如,给定变量 a 和 b,我需要求解 b 和 c。我正在尝试为程序想出一种方法来确定哪些变量已输入,哪些尚未输入。到目前为止,这是我一直在想的:
int a,b,c,d;
char unknown;
cout<<"****This program decides which variables to solve for****\n;
cout<<"Please enter the known variables below, if a variable is unknown,
please enter a'?'\n"
cout<< "please enter variable a\n";
cin>>a;
cout<< "please enter variable b\n";
cin>>b;
etc....
if (a =='?'){
check b,c,d}
if (b =='?'){
check c,d}
然后通过 if 语句运行这些变量以确定哪些变量存在,哪些不存在。不过,必须有一种更简单的方法,这些 if else if 语句有可能变得荒谬。如果你们有任何建议,我们将不胜感激。谢谢!
最佳答案
您发布的伪代码将不起作用,因为 >>x
其中 x
是一个 int
将尝试将用户的输入解释为整数规范。因此,随着用户键入 ?
发生的是操作失败,cin
处于失败状态,并且将忽略进一步的输入操作,直到或如果该失败状态被清除。
解决此问题的一种方法是一次输入一行,输入 std::string
, 通过使用 std::getline
来自 <string>
header 。当您有输入行时,您可以检查它是否是一个问号(或更简单,只是空的)。如果不是,您可以尝试将用户的号码规范转换为 int
通过使用例如一个std::istringstream
(正如我从 <sstream>
header 中记忆的那样)。
即使您可能会发现,正如“Potatoswatter”评论的那样,您这样做所要解决的问题可能非常复杂,但让这部分工作仍然具有指导意义。
干杯,
– 阿尔夫
关于c++ - 如何测试方程式的用户输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3886826/