если кто-то поможет, это будет высоко ценится и будет много значить!
Так что я боролся с этой, по-видимому, простой задачей кода.
Эта программа включает командную строку.
Для ситуации, когда аргументы командной строки не передаются, должно отображаться мое имя «Джеймс».
Если есть 2 аргумента, он должен добавить два аргумента.
Если есть 3, он должен делать то же, что и третий аргумент (a для сложения чисел из первых двух и 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;
}
}
}
#include <iostream>
void printError()
{
// @todo: this should actually print the usage of the program
std::cout << "Invalid input!" << std::endl;
}
void printResult(int result)
{
std::cout << result << std::endl;
}
int main(int argc, char *argv[])
{
if(argc == 2 || argc > 4)
{
printError();
return -1;
}
if(argc == 1)
{
std::cout << "James" << std::endl;
return 0;
}
int firstInput = atoi(argv[1]);
int secondInput = atoi(argv[2]);
char inputoperator = 'a'; // default to add
if(argc == 4)
{
inputoperator = argv[3][0];
}
int result = 0;
switch (inputoperator)
{
case'a':
{
result = firstInput + secondInput;
break;
}
case 's':
{
result = firstInput - secondInput;
break;
}
case 'm':
{
result = firstInput * secondInput;
break;
}
case 'd':
{
if(secondInput == 0)
{
printError();
return -1;
}
result = firstInput / secondInput;
break;
}
default:
{
printError();
return -1;
}
}
printResult(result);
}
Возможно, вы захотите использовать альтернативу atoi, так как он имеет неопределенное поведение для всего, что не вписывается в int
Я не думаю, что он хочет сложного решения …
Я не уверен, что с использованием функций это нормально.
#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;
}
}
}