Ich versuche, einen einfachen Rechner mit C zu erstellen. Die Zahlen und Operatoren sollten Parameter sein. Ich habe bereits die Hauptfunktion und eine Funktion berechnen:C - Rechner mit Parametern
Haupt:
int main(int argc, char *argv[]){
long result;
long number1 = strtol(argv[1], NULL, 10);
long number2 = strtol(argv[3], NULL, 10);
result = calculate(number1, number2, argv[2]);
printf("Result: %li", result);
return 0;
}
berechnen:
long calculate(long number1, long number2, char operator){
long result;
switch(operator){
case '+': result = number1 + number2; break;
case '-': result = number1 - number2; break;
}
return result;
}
Wenn ich starten Sie das Programm wie folgt aus:
./calc 1 + 2
das Ergebnis ist 0. Ich denke, es gibt ein Problem mit dem Operator-Parameter, denn wenn ich '+' anstelle von argv [2] schreibe, funktioniert es. Aber ich weiß nicht, wie ich es beheben kann, dass es auch mit dem Parameter funktioniert.
'berechnen (number1, number2, argv [2]);' -> 'berechnen (number1, number2, * argv [2]);' – BLUEPIXY
Compiler Warnungen sollten wie Fehler behandelt werden! Wenn Ihr Compiler nicht warnt, aktivieren Sie sie. Wenn es immer noch nicht warnt, trash es und bekomme einen modernen Compiler. – Olaf
LOL. Geben Sie auch einen 'default'-Bereich für Ihren 'switch' an. – AhmadWabbi