Forum: PC-Programmierung Kommandozeilenparameter Textdatei


von Daniel S. (dani2304)


Lesenswert?

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

von Clemens L. (c_l)


Lesenswert?

1
printf("argv[1] ist '%s'\n", argv[1]);
Was wird denn hiermit ausgegeben?

von P. P. (Gast)


Lesenswert?

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.

von Daniel S. (dani2304)


Lesenswert?

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')

von Peter II (Gast)


Lesenswert?

Daniel S. schrieb:
> Beim Öffnen der .exe datei mit
> ./Programmname kommt ('NULL')

was ja auch klar ist, wenn die keinen Parameter übergibst.

von Daniel S. (dani2304)


Lesenswert?

Wie übergebe ich da die Parameter? Wenn ich es im Terminal aufrufe?

./Programm
und dann?

von sfhgrthrt (Gast)


Lesenswert?

./Programm Rechnung.txt

von hfas (Gast)


Lesenswert?

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

von Peter II (Gast)


Lesenswert?

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.

von Heino (Gast)


Lesenswert?


von Johann L. (gjlayde) Benutzerseite


Lesenswert?

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
von Rolf M. (rmagnus)


Lesenswert?

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.

von Huh (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.