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 | |
Was wird denn hiermit ausgegeben?
Gast
#4910691
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')
Gast
#4910704
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?
Gast
#4910750
./Programm Rechnung.txt
Gast
#4910764
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
Gast
#4910767
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.
Gast
#4910969
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 :-)
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.
Gast
#4911303
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"? >:(
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.