我是C++新手。我正在使用命令行編寫一個簡單的計算器。命令行應該有這樣的格式: PROGRAMNAME firstNumber操作secondNumber 在這裏我得到了什麼至今:使用命令行參數的簡單計算器C++
#include <iostream>
#include <fstream>
using namespace std;
int main(int argc, char* argv[])
{
if (argc != 3)
{
cerr << "Usage: " << argv[0] << endl;
exit(0);
}
else
{
int firstNumber = atoi(argv[1]);
char theOperator = atoi(argv[2]);
int 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;
}
}
}
}
}
程序無法運行。當我運行它時,它會顯示適當的使用信息並結束程序。誰能幫幫我嗎?
你期望人們輸入'argv [2]'什麼? – Galik
'char theOperator = atoi(argv [2]);'如果argv [2]包含除數字之外的任何內容,''將始終將'theOperator'設置爲零。最有可能的'char theOperator = atoi(argv [2] [0]);'是你想要的。 – mikyra
@mikyra:不,這是錯誤的,原因有兩個。 'atoi'需要一個'char *',而不是一個普通的'char';而運營商不是*號碼*,所以'atoi'完全沒有了。只需使用'theOperator = argv [2] [0]'。 – usr2564301