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

bin grad dabei es zu testen.

irgendwie funzt es noch nicht so ganz

geh jetzt erstmal mit meinen kollegen essen.

werds dann nochmal probieren

@Poldi

des probier ich auch mal aus.

denke dass das sogar ein wenig einfacher ist.

@Poldi & Woodstock

thx fürs schnelle antworten.

Gruß

Johannes

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.

}

...

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

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...