Почему такой код не работает?
C++ (Qt)
std::string path("c:\\привет\\test.txt");
std::ofstream f(path.c_str());
Т.е. файл не создаётся и не открывается для записи.
А такой код работает.
C++ (Qt)
std::string path("c:\\привет\\test.txt");
FILE *fd = fopen(path.c_str(), "w");
std::ofstream f(fd);
Смотрел реализацию std::ofstream, они там внутри имя файла в юникод конвертируют и использую юникодные функции работы с файлами. Вызывается функция преобразования, которая зависит от установленной локали, выставлял принудительно системную, никакого эффекта.