Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hi

Bin neu hier und habe eine kleine Frage an das Forum.

Wie leite ich die Ausgabe in C++ in eine Datei?

hab es hiermit probiert:

#include fstream;

void adresse :: speichern_datei()

{

cout << "Die Daten werden nun in die Datei: Adressverwaltung.txt geschrieben." << endl;

fstream d;

d.open("C:\\Temp\\Adressverwaltung.txt", ios::app);

d << "Nachname";

d << name;

d <<" Vorname";

d << vorname;

d << " Strasse";

d << alter;

}

:rolleyes:

Kann mir vielleicht einer von euch weiterhelfen?

Hab keine Ahnung was ich falsch gemacht habe.

Gruß

Johannes

Geschrieben

Hi,

also ich arbeite mit den Funktionen fopen(zum Öffnen der Datei), fwrite (zum reinschreiben) und fclose (damit Du die Datei wieder schließen kannst).

Hast Du eine Hilfe dabei? Mit welcher Programmierungebung arbeitest Du?

Bine

Geschrieben

Klar!

Also, um die Datei zu öffnen:

FILE *fopen( const char *filename, const char *mode );

Als filename kannst Du das File in das Du schreiben willst (oder aauch aus dem Du lesen willst) direkt mit Pfad angeben. Willst Du es aber zwischendurch eventuell mal schließen (ich muss das in meinen Programmen immer wieder mal), dann ist es besser so das Du ein Char-Array erstellst in das Du den Pfad kopierst.

So, um das File nun öffnen zu könenn (und um zu kontrollieren ob es geklappt hat, empfiehlt es sich ein FILE zu definieren, dem Du dann das Ergebnis lieferst.

Als mode steht Dir folgendes zur Verfügung:

"r"

Opens for reading. If the file does not exist or cannot be found, the fopen call fails.

"w"

Opens an empty file for writing. If the given file exists, its contents are destroyed.

"a"

Opens for writing at the end of the file (appending) without removing the EOF marker before writing new data to the file; creates the file first if it doesn’t exist.

"r+"

Opens for both reading and writing. (The file must exist.)

"w+"

Opens an empty file for both reading and writing. If the given file exists, its contents are destroyed.

"a+"

Opens for reading and appending; the appending operation includes the removal of the EOF marker before new data is written to the file and the EOF marker is restored after writing is complete; creates the file first if it doesn’t exist.

Um in die Datei was zu schreiben:

size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );

buffer ist hier das was Du in die Datei schreiben willst. Nimm am besten ein Array in das Du das packst was Du in die Datei schreiben willst.

szie_t size ist die göße des Datentyps.

size_t count ist die Anzahl der Zeichen die Du schreiben willst.

FILE ist das file in das Du schreiben willst.

so, sicherlich ganz schön viel. Hier ein Beispiel:

#include <blablabla.h>

void main()
{
char Text[]={"Was ich schreiben will!"}; // Das ist das was Du in die Datei schreiben willst
char Datei[]={"c:\\Test.txt"}; // Das ist die Datei, also der filename
FILE *MeineDatei; // erklärt sich von selbst

if((MeineDatei = fopen(Datei, "a+"))!=0) // Abfrage ob das öffnen geklappt hat
{
fwrite(Text, sizeof(char), strlen(Text), MeineDatei);
}
else
cout << "Fehler - Datei konnte nicht geöffnet werden!\n";

fclose(MeineDatei); // Schließen der Datei, ganz wichtig

}[/PHP]

So, ich als include Datei brauchst Du glaube ich für fopen und fwrite nur die stdio.h!

Wenn Du noch was wissen willst, weil es sicher nicht alle Bereiche abdenckt, dann frag. Will nur nicht noch mehr schreiben was Du eventuell nicht brauchst.

Bine

Geschrieben

das von woodstock ist zum öffnen von dateien unter c. unter c++ geht das aber auch anders. dein ansatz war schon fast richtig: fstream inkludieren und dann aber:

ofstream zum öffnen von ausgabedateien -> schreiben

ifstream zum öffnen von eingabedateien -> lesen

Geschrieben
Original geschrieben von Woodstock

Da ich nicht erst C gelernt habe, sondern gleich C++ lerne weiß ich das nicht wirklich was da jetzt reines C ist, und was nicht.

Bine

ist ja auch eigentlich egal, hauptsache es funzt ... ;o)

Geschrieben

hab es mit fstream gelöst

find ich etwas einfacher.

hat aber auch en kleinen Nachteil.

ist keine Abfrage drin ob des Öffnen geklappt hat.

#include <fstream.h>

int main()

{

ofstream dat_aus;

dat_aus.open("D:\\test.txt");

dat_aus.write("Hallo", sizeof("Hallo"));

dat_aus.close ();

return 0;

}

@Poldi

kann man die Abfrage da noch irgendwie einfügen?

Gruß

Johannes

Geschrieben

Noch eine Möglichkeit wäre diese hier:


...

ofstream fout ("c:\\meinedatei.txt", ios::out);

if (fout.good())

{

   //der Zweig wird ausgeführt, wenn die letzte Operation mit "fout" erfolgreich war.

}

...

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...