Kommandozeile..Aufgabe
-
Kexplx schrieb:
Bis jetzt habe ich es so Probiert.
num(float Variable)=atof(string[1];
aber das klappt nicht.
Was heißt klappt nicht? Das kurze Codebeispiel hat mit C keine erkennbare Ähnlichkeit.
2. Muss ich den String einlesen lassen? Also mit Funktionen wie gets();
Nein, eben gerade nicht! Das ist es doch, was ich dir erklärt habe und was die Antwort auf die Frage mit der Kommandozeile war.
3. Von wo aus Starte ich das Programm? Ganz normal aus der IDE selbst?
Du wirst irgendwie die Kommandozeilenargumente eingeben müssen. Das geht beispielsweise von einer Kommandozeile aus
. Aber auch deine IDE sollte eine entsprechende Option bieten.
-
Hey Sepp,
kannst du dich evtl. kurz erbarmen und mir das Programm schreiben? Ich weiß es ist nicht dein Job als Admin hier meine Hausaufgaben zu lösen, und ich bin dir echt dankbar für die ganzen Tipps aber um 5 Uhr morgens kannst du ja vielleicht eine Ausnahme machen.
Wäre dir sehr dankbar.
LG
-
Nein. Es ist aber vorstellbar, das andere dies für dich tun, insbesondere, wenn Geld ins Spiel kommt.
-
Ich hab 20 Cent
und diesen Code:
http://www.directupload.net/file/d/4171/qkftvap3_png.htm
Benutze ich die Atof Funktion richtig?
Danke Sepp, bist einfach der Beste
-
Du kannst auch in einer Referenz zu
atof
nachsehen:
http://www.cplusplus.com/reference/cstdlib/atof/?kw=atof
oder
http://en.cppreference.com/w/c/string/byte/atofatof
erwartet einen Zeiger auf einen C-String. Die Elemente vonargv
sind Zeiger auf C-Strings.Du kannst so aber nicht feststellen, ob in dem C-String eine gültige Fließkommazahl steht.
Und kurzen Code kannst du direkt posten, dann aber zwischen Code-Tags.
(je Länger der Code, desto weniger schauen den an)
-
Zeilen 16 und 17 können doch niemals compilieren. So ruft man keine Funktionen auf. Ansonsten ist das doch gar nicht so weit von einem korrekten Ergebnis entfernt. Fehlt nur noch eine Analyse des Rechenzeichens.
-
Kexplx schrieb:
Kexplx schrieb:
Bitte direkt hier schreiben und keine Links auf externe Seiten.
-
Furble Wurble schrieb:
Bitte direkt hier schreiben und keine Links auf externe Seiten.
Hey! Jetzt sehe ich, dass ihm das schon mehrmals gesagt wurde. Dann ist es wohl Zeit, seine Beiträge zu ignorieren, bis er es endlich lernt.
-
Ok habs hinbekommen.
#include <stdio.h> #include <stdlib.h> int main(int argc, char *argv[]) { double x,y,z; if(argc<4) { printf("Zu wenig Parameter"); } x=atof(argv[1]); y=atof(argv[3]); switch(argv[2][0]){ case '+': z=x+y; break; case '-': z=x-y; break; default: printf("\n Falsche Operationszeichen!"); break; } printf("%s %s %s = %.2f",argv[1],argv[2],argv[3],z); }
Als erstes möchte ich meiner Mutter danken die mich die ganzen Jahre unterstützt hat und natürlich SeppJ, der wie ein Bruder für mich da war. In guten sowie in schlechten Zeiten.
-
Sieht solide aus.
-
Ahhh. Endlich kein verlinktes png mehr...
Wenn Du das Programm verlassen willst, z.B. weil nicht genügend Kommandozeilenargumente übergeben wurde, kannste natürlich schon vorher ein return einbauen.
if(argc<4) { puts("Zu wenig Parameter"); // puts() ist wie printf("%s\n", ...); nur kuerzer return -1; }
Werte !=0 (hier -1) bedeuten üblicherweise "Fehler".
-
Negative Werte als main-Return sind Nonsens.