Ich versuche, neue Unicode-Zeichen in C++ 0x zu verwenden. Also schrieb ich Beispielcode:Unicode-Unterstützung in C++ 0x
#include <fstream>
#include <string>
int main()
{
std::u32string str = U"Hello World";
std::basic_ofstream<char32_t> fout("output.txt");
fout<<str;
return 0;
}
Aber nach Ausführung dieses Programms Ich bin immer leer output.txt Datei. Warum druckt es nicht Hallo Welt?
Auch gibt es so etwas wie ein cout
und cin
bereits für diese Typen definiert sind, oder stdin
und stdout
unterstützt Unicode nicht?
Edit: Ich benutze g ++ und Linux.
BEARBEITEN: ANTWORT. Ich habe entdeckt, dass das Standardkomitee Unicode-Streams von C++ 0x ablehnt. Die zuvor akzeptierte Antwort ist also nicht mehr korrekt. Für weitere Informationen siehe my answer!
Ist die Datei leer, weil es 0 Byte hat, oder ist es leer, weil Texteditor alle druckbaren Zeichen nicht zeigt? – Gabe
@Gabe es hase 0 Bytes – UmmaGumma
Welche GCC-Version verwenden Sie? – ssmir