Hallo, wie erreiche ich es, dass "Der Name der Textdatei soll beim Programmaufruf als Kommandozeilenparameter übergeben werden."? Ich muss unter Eclipse (Linux) programmieren. Wenn ich bei der Konfiguration ---> Argumente: "Rechnung.txt" eingebe, so wird das beim öffnen nicht erkannt RechZettel = fopen (argv[1], "a"); Muss ich eine Variable nehmen in die ich das "Rechnung.txt" reinschreibe? Grüße Daniel
1 | printf("argv[1] ist '%s'\n", argv[1]); |
Was wird denn hiermit ausgegeben?
C fängt bei 0 an zu zählen. Probier's mal mit argv[0]. Wobei argv[0] eigentlich der Programmname ist und argv[1] das erste Argument. Schau mal, was in 0 und 1 drin steht.
Bei printf("argv[1] ist '%s'\n", argv[1]); kommt 'Rechnung.txt'. Aber nur wenn ich es direkt bei eclipse öffne. Beim Öffnen der .exe datei mit ./Programmname kommt ('NULL')
Daniel S. schrieb: > Beim Öffnen der .exe datei mit > ./Programmname kommt ('NULL') was ja auch klar ist, wenn die keinen Parameter übergibst.
Wie übergebe ich da die Parameter? Wenn ich es im Terminal aufrufe? ./Programm und dann?
Daniel S. schrieb: > Beim Öffnen der .exe datei mit Kein Wunder, dass das nicht klappt. Es gibt keine .exe unter Linux. Ansonsten wie immer bei solchen Faellen: http://openbook.rheinwerk-verlag.de/c_von_a_bis_z/ hfas
hfas schrieb: > Kein Wunder, dass das nicht klappt. > Es gibt keine .exe unter Linux. man kann eine ausführbare Datei auch unter Linux als .exe anlegen und sie startet sogar wenn sei ausführbar ist.
P. P. schrieb: > Wobei argv[0] eigentlich der Programmname ist Nicht notwendigerweise. http://stackoverflow.com/questions/2050961/is-argv0-name-of-executable-an-accepted-standard-or-just-a-common-conventi
P. P. schrieb: > C fängt bei 0 an zu zählen. Probier's mal mit argv[0]. Volltreffer. argv[0] ist der Name des Programms selbst. Erge: wenn man keinen Plan hat EMDFH :-)
:
Bearbeitet durch User
In welchem Verzeichnis liegt denn die Datei, und stimmt das mit dem Arbeitsverzeichnis, das für die Ausführung des Programms verwendet wird, überein? Probier doch einfach mal, ob es gefunden wird, wenn du den absoluten Pfad angibst.
Johann L. schrieb: > P. P. schrieb: >> C fängt bei 0 an zu zählen. Probier's mal mit argv[0]. > > Volltreffer. argv[0] ist der Name des Programms selbst. Erge: wenn man > keinen Plan hat EMDFH :-) Wenn du vollständig zitiert hättest, hieße das: P. P. schrieb: > C fängt bei 0 an zu zählen. Probier's mal mit argv[0]. > Wobei argv[0] eigentlich der Programmname ist und argv[1] das erste > Argument. Und jetzt vergleichen wir mal deine Version > Volltreffer. argv[0] ist der Name des Programms selbst. mit der Version von P.P. > Wobei argv[0] eigentlich der Programmname ist und argv[1] das erste > Argument. Fällt dir was auf? Und kannst du dazu auch was sagen außer "EMDFH"? >:(
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.