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

标签 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 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/

相关文章:

c++ - `using namespace foo;` 没用吗?

c++ - 自顶向下递归下降解析 : Relying on tail call optimization

c++ - boost::filesystem::path::string() 输出的奇怪行为

字符串类删除成员函数的C++时空复杂度

c++ - pkg-config 和 LD_LIBRARY_PATH 的区别

C++ GUI 和控制台应用程序

c++ - 2009 年的 OpenGL 窗口库

c++ - C/C++ 从标准输入的 hexinput 读取一个字节

c++ - 矩形近似算法

c++ - 参数包和移动语义