Programme gehen immer wieder zu! (Windows)
-
Hey Leute, ich habe ein Problem mit den Programmen in dem C-Buch für Anfänger, dass ich grade durcharbeite.
Wenn ich z.B. folgendes Programm eingebe:
#include <stdio.h> #include <stdlib.h> #include <assert.h> int main(int argc, char *argv[]) { double x,y,z; if(argc < 4){ printf("\nAufruf: %s zahl1 op zahl2", argv[0]); exit(1); } x=atof(argv[1]); y=atof(argv[1]); assert(y != 0); switch(argv[2][0]){ case '+': z=x+y; break; case '-': z=x-y; break; case'*': z=x*y; break; case'/': z=x/y; break; default: printf("\nFalsches Operationszeichen!"); exit(2); } printf("%s %s %s = %f", argv[1], argv[2], argv[3], z); system("PAUSE"); return 0; }
schließt sich das Programm sofort nach dem Ausführen wieder, obwohl ich system("pause") mit angegeben habe. Was mache ich falsch?
-
...
-
Tut mir leid, ich bin ein totaler Anfänger. Was genau sagt mir das jetzt?
Ich habe auch probiert, das Programm in der Kommandozeile aufzurufen, damit habe ich aber auch wenig Erfolg...EDIT:// Beitrag ist editiert
-
Freshmaker schrieb:
Ich habe auch probiert, das Programm in der Kommandozeile aufzurufen, damit habe ich aber auch wenig Erfolg...
Das wäre der richtige Weg, um die Konsole auch bei Programmende offen zu halten. Wo ist hierbei das Problem?
-
also ich ziehe die .exe datei erstmal in die kommandozeile, damit der Pfad dort korrekt angegeben ist. Was tue ich dann?
Muss ich irgendwelche Argumente angeben?
habe als Argument z.B. 2+3 versucht, klappt nicht...
-
'Enter' drücken.
btw. was ist 'die Kommandozeile'?
Du hast eine Konsole aufgemacht, ja?
-
Es muss heißen:
y=atof(argv[3]);
Die exe Datei rufst du mit durch Leerzeichen getrennten Argumenten auf (in einer standardmäßig konfigurierten Windows-Konsole), also
programm.exe 2 + 3
und nicht
programm.exe 2+3