fwrite mach mit 2 Dimensionalen Array Probleme
-
Hab folgendes probiert
for (int i = 0; i < zeile ; i ++) { for (int j = 0; j < spalte ; j++) { cout << neu [j][i]; FILE *Satz; Satz = fopen ("Coded.txt","wb"); fwrite (neu[j][i],sizeof(neu),1,Satz); fclose (Namenliste); } }
funzt aber nicht. In neu steht ein satz wie z.b. "Hallo Welt" will den jetzt spaltenweiße in eine txt speichern
-
Ich kenne fwrite nicht, aber bist du dir sicher das du die Datei in jedem Schleifendurchlauf neu öffnen und schliessen willst.
Mal abgesehen davon wird in C++ sowas wohl mit streams gemacht.
EDIT:
dazu gibt es auch was im FAQ:
http://www.c-plusplus.net/forum/viewtopic.php?t=39469
-
1. welche fehlermeldung bekommst du ?
---------------------------
2. soweit ich weis gibt es den parameter "wb" nicht.
r Öffnet eine Datei ausschließlich für Leseoperationen.w Erzeugt eine Datei für Schreiboperationen. Falls die Datei bereits existiert, wird sie überschrieben.
a Öffnet eine Datei für Schreiboperationen. Falls die Datei bereits existiert, werden weitere Daten an das aktuelle Dateiende angehängt, ansonsten wird sie automatisch erzeugt.
r+ Öffnet eine Datei für Lese- und Schreiboperationen. Die Datei muß bereits existieren.
w+ Erzeugt eine neue Datei für Lese- und Schreiboperationen. Falls die Datei bereits existiert, wird sie überschrieben.
a+ Öffnet eine Datei zum Lesen und Anhängen neuer Daten durch Schreiboperationen. Falls die Datei bereits existiert, bleibt ihr alter Inhalt erhalten, falls nicht, wird sie automatisch erzeugt.
---------------------------
3. wie schon oben angemerkt solltest du evtl FILE *Satz und das datei öffnen vor der schleife machen. ansonnsten musst du auf jeden fall den parameter "a" verwenden, da er sonnst nicht am ende anfügt.---------------------------
4. sizeof(neu) ist gleichbedeutend mit sizeof(charund du willst ja nicht den pointer abspeichern sondern den inhalt. von daher solltest du sizeof(char) verwenden.
---------------------------
5. du solltest auch die datei die du öffnest wieder schließen und nicht "Namenliste"So sollte es gehen:
FILE *pfileSatz int i, j; pfileSatz = fopen("Coded.txt","w"); for(i = 0; i < zeile; i++) { for(j = 0; j < zeile; j++) { fwrite (neu[j][i], sizeof(char), 1, pfileSatz); } } fclose (pfileSatz);
-
Hallo,
ulath schrieb:
2. soweit ich weis gibt es den parameter "wb" nicht.
doch, diese Kombination gibt es. Windows z.B. unterscheidet Text- und Binärausgabe, mit "b" wird binär geschrieben.
In diesem Falle ist das "b" allerdings nicht angebracht, da offensichtlich eine Textdatei geschrieben werden soll.
MfG
-
Alles klar danke es hat gefunzt und zwar mit
fwrite (&neu[j][i], sizeof(neu), 1, pfileSatz);
-
sTyL3X schrieb:
Alles klar danke es hat gefunzt und zwar mit
fwrite (&neu[j][i], sizeof(neu[j][i]), 1, pfileSatz);
ooops sorry bin versehentlich auf zitieren gegangen