【发布时间】:2015-07-17 09:15:45
【问题描述】:
我正在编写一个项目,我们从命令行执行简单的计算器。用户以这种格式输入 programname firstNumber operator secondNumber。到目前为止我得到了什么:
#include <iostream>
#include <fstream>
#include <iomanip>
using namespace std;
int main(int argc, char* argv[])
{
cout << fixed << setprecision(2);
if (argc != 4)
{
cerr << "Usage: " << argv[0] << " <number> <operator> <number>" << endl;
exit(0);
}
else
{
double firstNumber = atoi(argv[1]);
char theOperator = argv[2][0];
double secondNumber = atoi(argv[3]);
switch (theOperator)
{
case'+':
{
cout << "The answer is " << firstNumber + secondNumber << endl;
break;
}
case '-':
{
cout << "The answer is " << firstNumber - secondNumber << endl;
break;
}
case '*':
{
cout << "The answer is " << firstNumber * secondNumber << endl;
break;
}
case '/':
{
if (secondNumber == 0)
{
cout << "Can not devide by a ZERO" << endl;
break;
}
else
{
cout << "The answer is " << firstNumber / secondNumber << endl;
break;
}
}
}
}
}
我遇到了一个问题,即我的项目对十进制数的计算错误。例如,如果我做 2.5 + 1.25,结果是 3。谁能帮帮我?我是 C++ 新手
【问题讨论】:
-
atoi(argv[1])将数字转换为整数。
标签: c++ command-line-arguments calculator