Forum: PC-Programmierung Kommandozeilenparameter Textdatei


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Daniel S. (dani2304)


Bewertung
-1 lesenswert
nicht 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)


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

von P. P. (klatschnass)


Bewertung
0 lesenswert
nicht 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.

: Bearbeitet durch User
von Daniel S. (dani2304)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert
Wie übergebe ich da die Parameter? Wenn ich es im Terminal aufrufe?

./Programm
und dann?

von sfhgrthrt (Gast)


Bewertung
0 lesenswert
nicht lesenswert
./Programm Rechnung.txt

von hfas (Gast)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht lesenswert

von Johann L. (gjlayde) Benutzerseite


Bewertung
-2 lesenswert
nicht 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)


Bewertung
0 lesenswert
nicht 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)


Bewertung
2 lesenswert
nicht 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"? >:(

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.