如何测试方程式的用户输入?

时间:2010-10-08 00:10:10

标签: c++

我有一个包含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语句有可能是荒谬的。如果您有任何建议,我非常感谢。谢谢!

1 个答案:

答案 0 :(得分:1)

您发布的伪代码无效,因为>>x xint,会尝试将用户的输入解释为整数的规范。因此,当用户键入?时,操作失败,cin处于故障状态,并且忽略进一步的输入操作,直到或者如果该故障状态被清除。

解决此问题的一种方法是使用std::string标题中的std::getline一次输入一行<string>。当你有输入线时,你可以检查它是否是一个问号(或更简单,只是空)。如果没有,您可以尝试通过使用例如将用户的号码规范转换为int。一个std::istringstream(我记得<sstream>标题)。

即使您可能会发现,正如“Potatoswatter”所评论的那样,您正在执行此操作的问题可能非常复杂,但使这部分工作也很有帮助。

干杯&amp;第h。,

- Alf