ofstream::write NULL Terminierung
-
Hi,
char test[3]; test[0]='a'; test[1]='b'; test[2]='\0'; file.write(test,3); test[0]='a'; test[1]='b'; test[2]='\0'; file.write(test,3);Ausgabe:
扡愀bchar test[2]; test[0]='a'; test[1]='b'; file.write(test,2); test[0]='a'; test[1]='b'; file.write(test,2);Ausgabe:
ababKann mir vlt jemand erklären wieso die erste Ausgabe falsch ist und die zweite Richtig? Obwohl ich meinen würde die erste müsste richtig ausgeben un die zweite falsch?
Danke gruß
-
Was soll an der ersten Ausgabe denn "falsch" sein?
-
Dein Tool zum Überprüfen ist nicht geeignet oder falsch eingestellt.
-
Hi
Naja das ist die Ausgabe die ich in einem File erhalte und die ist eben falsch?
Mein Tool ist VS8.Gruß
-
1. In welchem Universum ist das C und nicht C++? Und bin ich ein Teil dieses Universums?
2. (Ungültig, hatte einen Knick in der Optik).
3. Normalerweise gibt man immer kompilierbare Beispiele mit an, weil die Leute keinen Bock haben, sich da wieder einen Main-Wrapper drumzubauen Und ich kann's verstehen. Sehe ich bei dir auch nicht.
4. Und auf deine Ausgabe komme weder ich noch die anderen Paralleluniversen:
#include <fstream> #include <iostream> int main(void) { char test[3]; std::ofstream file("bla"); test[0]='a'; test[1]='b'; test[2]=0; file.write(test,3); std::cout.write(test,3); test[0]='a'; test[1]='b'; test[2]=0; file.write(test,3); std::cout.write(test,3); return 0; }Ausgabe uffer Konsole, durch
hdgejagt:00000000 61 62 00 61 62 00 |ab.ab.| 00000006Ausgabe inner Datei, durch
hdgejagt:00000000 61 62 00 61 62 00 |ab.ab.| 00000006Und was machen wir jetzt? Mit deinen Informationen kann zumindest ich das Problem nicht nachvollziehen. Entweder du legst da noch nach, oder du musst halt mit dem "Verhalten" bei dir leben.
-
Brause schrieb:
Hi
Naja das ist die Ausgabe die ich in einem File erhalte und die ist eben falsch?
Mein Tool ist VS8.Dann ist VS8 nicht geeignet um die Datei anzusehen. Bzw. die Einstellungen sind falsch.
Mein Verdacht:
Da du in Version 1 Nullbytes schreibst, die in normalen ASCII-Texten nicht vorkommen, kann VS8 z.B. meinen, es handele sich um eine UTF16 Datei.Nimm einen Hexviewer/Editor und schau damit in deine Datei.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (alle ISO-Standards) in das Forum C++ (alle ISO-Standards) verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.