Я пишу код для создания программируемого на C калькулятора RPN с использованием аргументов командной строки У меня проблема с первым вычислением, выполняемым программой, поскольку первый элемент в моем массиве операторов мне неизвестен и влияет на вычисление.
Моя командная строка гласит:
$ ./rpn.exe 1 2 3 4 5 + + + +
Мой массив должен быть {+, +, +, +}
Однако вывод на печать:
º + + + +
Вот мой цикл for, добавляющий операторы в массив. Операнды в моем числе чисел в строке cmd. Is_Op просто для ошибок.
for(int c = operands + 1; c < argc; c++)
{
char b = *argv[c];
if(Is_Op(b) == 1)
{
fprintf(stderr, "%c is not an operator", b);
return 1;
}
else
{
operators[c - operands] = b;
}
}
Вот моя функция печати массива. TotalOps - это общее количество операторов. И операторы [] это их массив.
for(int count = 0; count <= TotalOps; count++)
{
printf("%c ", operators[count]);
}