charb Array in txt in Datei schreiben
-
Hallo ich habe ein char Array dass beispielsweise so aussieht
char abc[30];und mit {absgdgd 121 sds} gefüllt ist
jetzt will ich dieses in die mitOutput = fopen("c:\\neu.txt","w"))geöffneten Datei schreiben und am Ende einen Zeilenumbruch erzeugen. Hat jemand eine Ahnung wie ich das machen könnte?
-
weiß nicht, vielleicht mit:
fprintf(Output, "%s", abc); fprintf(Output, "\n"); fclose(Output);
-
Du schreibst mit fwrite unformatierte Daten in die Datei.
fwrite(abc, sizeof(char), 30, Output);
-
ne klappt leider nicht habe jetzt
char abd [7] = {0,2,3,5,6,7,7}; fprintf(Output, "%s", abc); fprintf(Output, "\n"); fclose(Output);aber ist danach leer

-
Da wir hier im C++ Forum sind...
#include <fstream> char text[x]; std::ofstream file; file.open("c:\\neu.txt"); // Wenn das Array Null Terminiert ist file << text; // Ansonsten file.write(text, x); file.close();edit: Schau mal hier: http://www.cppreference.com/ascii.html
Die ersten 31 ASCII Zeichen sind Steurungszeichen, die sieht man nicht im normalen Editor. Kannst ja mal einen Hexeditor laden und die Datei damit ansehen.edit2: Es gibt übrigens einen Edit-Button

-
meine natürlich
char abd [7] = {0,2,3,5,6,7,7}; fprintf(Output, "%s", abd); fprintf(Output, "\n"); fclose(Output);aber klappt auch nicht
-
Schau dir an, wodurch die Länge eines c-Strings definiert ist, dann ist klar,
warum die fprint Methode nicht funktioniert.
-
Ok habe jetzt den Code probiert
char text [7]; text [0]=1; text[1]=3; text[2]=6; std::ofstream file; file.open("c:\\neu1.txt"); file << text ; file.close();er schreibt mir aber nicht 136 in meine neu1.txt sondern:
1ÌÌÌÌÌÌÌÌÌÌÌÌÌÌÌ@/
-
Hallo,
Hast du dir die anderen Antworten durchgelesen (ASCII, Stringende)?
Dann hättest du darauf kommen müssenchar text [7]; text[0] = '1'; text[1] = '3'; text[2] = '6'; text[3] = 0; ...Ciao
-
Siehe oben da hab ich schon geschrieben wie es aussehen muss wenn das Array nicht Null-terminiert ist (wenn du nicht weißt was das bedeutet empfehle ich ein Tutorial). Und natürlich wird nacher nicht 136 in der Datei stehen, da du ASCII-codierst speicherst, d.h. jede Zahl entspricht einem Symbol oder einem Satusbyte. http://www.cppreference.com/ascii.html
-
Ja ok dann: 136ÌÌÌÌÌÌÌÌÌÌÌÌÌ@/ aber wie kriege ich dieses lässtige Ende weg?
ohne mein array voll zu schreiben?
-
FireFlow schrieb:
Siehe oben da hab ich schon geschrieben wie es aussehen muss wenn das Array nicht Null-terminiert ist (wenn du nicht weißt was das bedeutet empfehle ich ein Tutorial). Und natürlich wird nacher nicht 136 in der Datei stehen, da du ASCII-codierst speicherst, d.h. jede Zahl entspricht einem Symbol oder einem Satusbyte. http://www.cppreference.com/ascii.html
blop... Du hast noch nicht beachtet
-
Ja sorry habe ich nicht gesehen den Beitrag. Das mit den Asci ist ok wenn ich in 'zeichen' schreibe haut es ja auch hin. Mit file.write(text, x); bekomme ich eine Fehlermeldung.
Aber ist egal ob das array aufgefüllt ist oder nicht oder nicht ich habe ebend immer diese Endung ÌÌÌÌÌÌÌÌÌ@/.
-
Hast du die 0 an Position 3 wie beschrieben?
-
Ah grad gemacht, ok danke. Dann kann ich jetzt endlich weiter machen. Ist gar nicht so einfach alles...
-
Bloß mal als Hinweis.
Du wärst hier viel schneller zu einen Ergebnis gekommen, wenn du dir die Antworten gründlich durchgelesen hättest und viellecht mal ein Tutorial lesen würdest.
-
Ja mit Tutorium hast du Recht, nur manche Sachen wie zum Beispiel das Speichern von Arrays in Datei oder das Anlegen von mehrdimensionalen Arrays.
Da hab ich noch nichts gefunden. Die einfachen Sachen wie bearbeiten von Arrays etc. findet man ja schnell in Tutorien, aber die etwas komplexeren eher selten. Hab mir jetzt schon C++ in 21 Tagen und etliche Tutorien im Netz durchgelesen aber manche Sachen stehen da halt nicht. Wenn du ein gutes Tutorium in dem es um die bearbeitung von Text Dateien geht (mit arrays etc) kennst, würde ich mich über den Link freuen. Und grade als Anfänger ist es ebend schwer sich manche Sachen dann zu sammen zu reimen.
-
Wenn du ein Tutorial mit Arrays und C-Strings behandelt hast sollte es kein Problem sein das auf die File-Funktionen zu übertragen, wenn du das nicht kannst hast du es nicht richtig verstanden.
-
Ja habe aber kein Tutorial mit File Funktionen gelesen da kein gutes gefunden. Und genau da liegt das Problem
-
char-Array werden in reinen C++-Tutorials häufig eher stiefmütterlich behandelt. Das liegt einfach daran das man sie ein den meisten Fällen nicht braucht.
Wenn man das doch lernen will ist ein C-Tutorial besser geeignet oder man schaut sich mal im Web um. Ich hab da z.Bsp. das hier gefunden
http://de.wikibooks.org/wiki/C-Programmierung:_Arrays_und_StringsCiao