Я пытаюсь использовать новые символы Unicode в С++ 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;
}
Но после выполнения этой программы я получаю пустой файл output.txt. Так почему он не печатает Hello World?
Также существует ли что-то вроде cout
и cin
для этих типов, или stdin
и stdout
не поддерживает Unicode?
Изменить: я использую g++ и Linux.
EDIT: АТТЕNTION. Я обнаружил, что стандартный комитет отклонил потоки Unicode из С++ 0x. Таким образом, ранее принятый ответ больше не подходит. Для получения дополнительной информации см. мой ответ!