Я пытаюсь использовать новые символы Unicode в C++ 0x. Так что я написал пример кода:Поддержка Unicode в 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;
}
Но после выполнения этой программы я получаю пустой файл output.txt. Итак, почему он не печатает Hello World?
также есть что-то вроде cout
и cin
уже определены для этих типов, или stdin
и stdout
не поддерживает Unicode?
Редактировать: Я использую g ++ и Linux.
EDIT: ИНТЕЛЛЕКТ. Я обнаружил, что стандартный комитет отклонил потоки Unicode из C++ 0x. Таким образом, ранее принятый ответ больше не подходит. Для получения дополнительной информации см. my answer!
Является ли файл пустым, потому что он имеет 0 байтов, или он пуст, потому что ваш текстовый редактор не показывает никаких печатных символов? – Gabe
@Gabe it hase 0 байт – UmmaGumma
какая версия gcc вы используете? – ssmir