mikrocontroller.net

Forum: PC-Programmierung C-Programm Dateinamen übergeben


Autor: Hans Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich habe ein Programm, das soll Daten in eine Datei schreiben. Jedoch
soll der Dateiname eingelesen werden.

Mein Problem ich bekomme es weder unter C noch unter C++ hin den
Dateinamen an fopen zu übergeben oder fprintf oder sonstiges. Ich habe
sehr viele Ansätze gefunden aber nie hat jemand mal dazu geschrieben
welche Bibliothek man dazu braucht, oder wie man den Befehl
entsprechend benutzt.

gehört habe ich jetzt von Befehlen wie cout, cin, einer hat mit dem
Befehl Ansistring einen temporären String erzeugt mit dem er gearbeitet
hat, aber niemand hat gesagt welche Libaries man dafür braucht :-(.

Über allgemeine Lösungen im Bereich von C wäre ich sehr sehr dankbar,
wie man den Dateinamen in einem String einliest und dann diesen an
fopen oder fprintf oder wie auch immer gibt, damit ich dann Ergebnisse
in die Datei speichern kann, danke und Gruß Martin.

Autor: Roland Praml (pram)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wo hakts denn? Poste mal Code wie weit du kommst.

Google:
- man fopen
- fopen example

Gruß
Roland

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Mein Problem ich bekomme es weder unter C noch unter C++ hin
> den Dateinamen an fopen zu übergeben oder fprintf oder sonstiges

Na, ja. So schwer ist das auch wieder nicht:

int main()
{
  char Dateiname[256];

  /* Irgendwo muss jetzt der Dateiname herkommen.
     Der Einfachheit halber kopiere ich ihn mal
     nach 'Dateiname'. Du kannst den auch vom Benutzer
     einlesen oder was auch immer */

  strcpy( Dateiname, "C:\\test.txt" );

  /* und jetzt der fopen. */
  fopen( Dateiname, "r" );

}

Wo liegt denn da das Problem? Du definierst dir einen
string (als char Array, wie unter C üblich) und übergibst
das ganz einfach an fopen.

VIelleicht wäre ein Einführungsbuch zur Programmierung in C
mal eine tolle Investition.

Autor: Rolf Magnus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Jedoch soll der Dateiname eingelesen werden.

Von wo?

> Mein Problem ich bekomme es weder unter C noch unter C++ hin den
> Dateinamen an fopen zu übergeben oder fprintf oder sonstiges.

Wie versuchst du's denn? Was passiert bei dem Versuch?

> Ich habe sehr viele Ansätze gefunden aber nie hat jemand mal dazu
> geschrieben welche Bibliothek man dazu braucht, oder wie man den
> Befehl entsprechend benutzt.

Für fopen und fprintf braucht man keine spezielle Bibliothek. Die
Funktionen ("Befehle" gibt's in C eigentlich nicht) sind Teil der
C-Standardbibliothek, die in der Regel automatisch gelinkt wird.

> gehört habe ich jetzt von Befehlen wie cout, cin,

Das sind Objekte. Sie sind Teil der C++-Standardbibliothek und
existieren in C nicht.

> einer hat mit dem Befehl Ansistring einen temporären String
> erzeugt mit dem er gearbeitet hat, aber niemand hat gesagt welche
> Libaries man dafür braucht :-(.

Ich habe keine Ahnung, was "Ansistring" ist und zu welcher Bibliothek
es gehört.

> Über allgemeine Lösungen im Bereich von C wäre ich sehr
> sehr dankbar, wie man den Dateinamen in einem String einliest

Nochmal: von wo willst du ihn lesen?

> und dann diesen an fopen oder fprintf oder wie auch immer gibt,

An fprintf gibts du den Dateinamen nicht, außer, wenn du ihn in eine
Datei schreiben willst. Zuerst muß die Datei mit fopen geöffnet werden.
Diese gibt dir einen FILE* zurück, den du dann benutzt, um die Aktionen
(z.B. fprintf) durchzuführen. Am Ende schließt du die Datei mit fclose
wieder. Wie die Funktionen aufzurufen sind, steht normalerweise im
Handbuch des Compilers.

Autor: Bartli (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Ich habe keine Ahnung, was "Ansistring" ist und zu welcher
Bibliothek es gehört.

Vermutlich eine Erfindung von Borland.

Autor: tastendrücker (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aus der DSTRING.H (Borland C++ Builder):

/--
AnsiString: String class compatible with Delphi's Native 'string'
type

--/

Autor: Klaus Kehrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welchen Compiler nimmst Du?

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]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [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.