C ++ Read/Schreiben Sie Charaktere größer als ~ 50.000
-
27-10-2019 - |
Frage
Ich habe ein Programm, das im Grunde genommen solche Charaktere schreibt
wchar_t c[5] = {static_cast<wchar_t>(x1), static_cast<wchar_t>(x2), static_cast<wchar_t>(x3), static_cast<wchar_t>(x4)};
fileWriter->Write(msclr::interop::marshal_as<String^>(c));
Und dann hat sie später mit nur in das Programm eingegeben
String^ fileContent = fileReader->ReadToEnd();
Mein Problem ist, wenn x1/x2/x3/x4 einen ganzzahligen Wert von einer großen Zahl hat (ich kann nicht sicher sein, welche, aber ich denke 65533.
Ich habe mich mit den StreamReader- und Streamwriter -Codierungswerten verprügelt, aber ich habe sie zu System :: text :: coding :: unicode zuerst festgelegt und kann nicht sehen, warum das nicht funktionieren würde ...
Ich bin mir nicht einmal sicher, ob es das Symbol falsch schreibt oder es liest ... Wenn ich die Textdatei öffne, die es erstellt, sind sie alle unleserliche Zeichen für meinen PC ... Ich bin wirklich nicht mehr für Ideen. Weiß jemand, was ich hier falsch mache?
Lösung
Dies wird wahrscheinlich von den UNICODE -FAQ bedeckt. "Was ist ein Ersatz?"Es ist völlig unklar, was Sie tatsächlich erreichen wollen, aber es klingt sicher so, als ob Sie einen FileStream und keinen Streamwriter verwenden sollten. Bytes und Charaktere sind nicht austauschbar.