Russian Qt Forum

Программирование => С/C++ => Тема начата: Barmaglodd от Июль 06, 2009, 08:04



Название: std::ofstream VC++2005 и пути с русскими буквами
Отправлено: Barmaglodd от Июль 06, 2009, 08:04
Почему такой код не работает?
Код
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, они там внутри имя файла в юникод конвертируют и использую юникодные функции работы с файлами. Вызывается функция преобразования, которая зависит от установленной локали, выставлял принудительно системную, никакого эффекта. :(