需要帮助的简单命令提示符计算器项目C ++

时间:2018-08-07 10:54:40

标签: c++ input command-prompt calc

如果有人愿意帮助,将不胜感激,这意味着很多!

所以我一直在努力完成这个看似简单的代码任务。

此程序涉及命令提示符。

对于没有传递命令行参数的情况,必须显示我的名字“ James”。

如果有2个参数,则必须添加两个参数。

如果有3,则必须执行第3个参数,(a用于将第一个数字加2,m用于相乘,依此类推)。

如果人们可以修复我的代码,那么我将不胜感激。

由于有点尴尬,我将不做准备。但这将意味着您需要帮助的话。 <3。

在这里。

#include "stdafx.h"
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int firstNumber = atoi(argv[1]);
    int secondNumber = atoi(argv[2]);
    char inputoperator = argv[2][0]);
    switch (inputoperator)
    {
        case'a':
        {
            cout << firstNumber + secondNumber << endl;
            break;
        }
        case 's':
        {
            cout << firstNumber - secondNumber << endl;
            break;
        }
        case 'm':
        {
            cout <<  firstNumber * secondNumber << endl;
            break;
        }
        case 'd':
        {
            cout <<  firstNumber / secondNumber << endl;
            break;
        }
    }
}

2 个答案:

答案 0 :(得分:2)

IList
  • 在尝试访问输入之前,您需要检查输入的数量。
  • 您正在为inputNumber和inputoperator重用argv [2],它实际上指向您要分配给inputoperator的值
  • 缺少错误处理

您可能想使用atoi的替代方法,因为它对所有不适合int的事物都具有不确定的行为

答案 1 :(得分:1)

我不认为他想要一个复杂的解决方案...

我不确定是否可以正常使用功能。

#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    if(argc < 3)
    { 
        cout<<"Your name" <<endl;
        return 0;
    }
    int firstNumber = atoi(argv[1]);
    int secondNumber = atoi(argv[2]);
    char inputoperator = 'a';
    if(argc == 4)
    {
       inputoperator = argv[3][0];
    }
    switch (inputoperator)
    {
        case'a':
        {
            cout << firstNumber + secondNumber << endl;
            break;
        }
        case 's':
        {
            cout << firstNumber - secondNumber << endl;
            break;
        }
        case 'm':
        {
            cout <<  firstNumber * secondNumber << endl;
            break;
        }
        case 'd':
        {
            cout <<  firstNumber / secondNumber << endl;
            break;
        }
    }
}