Создать файл по указанному c Unicode-пути - PullRequest
0 голосов
/ 14 января 2020

Я хочу создать файл с заданным путем, который содержит символы Unicode. Я пробовал приведенный ниже код, но после компиляции моего кода файл не создается.

wchar_t path = (wchar_t)"D:/File/ফোল্ডার/filename.txt";
std::wofstream file(&path); //open in constructor
std::wstring dat((wchar_t*)"Data to Write");
file << dat;

1 Ответ

4 голосов
/ 14 января 2020

"D:/File/ফোল্ডার/filename.txt" - это строковый литерал типа const char [N]. Поэтому (wchar_t)"D:/File/ফোল্ডার/filename.txt" приводит указатель const char * к wchar_t, который не делает то, что вам нужно

Кроме wchar_t path объявляется один широкий символ, а не строка wchar_t

Вам нужно использовать префикс L, чтобы получить строковый литерал wchar_t, и вместо этого объявить указатель:

const wchar_t* path = L"D:/File/ফোল্ডার/filename.txt";
std::wofstream file(path); //open in constructor
std::wstring dat(L"Data to Write");
file << dat;

Также обратите внимание, что разделитель пути по умолчанию в Windows это backsla sh \, а не sla sh /, хотя для многих API они ведут себя одинаково.

...