Я пытаюсь прочитать символы Юникода из текстового файла в wchar_t массив указателей, используя wifstream. Вот фрагмент кода:
locale::global(std::locale("en_US.UTF-8"));
std::wifstream inputFile("gsmCharacterSet.txt", std::ifstream::binary | std::ifstream::ate);
int length = inputFile.tellg();
inputFile.seekg(0,inputFile.beg);
wchar_t *charArray = new wchar_t[length];
inputFile.read(charArray,length);
Это не работает. Возвращенная длина равна 252, что является правильным размером файла в байтах. Тем не менее, массив остается пустым.
Следующее условие возвращает правда:
if ( inputFile.peek() == std::wifstream::traits_type::eof() )
cout << "File is empty";
Я компилирую программу на Linux, используя g ++.
Что я делаю неправильно? Спасибо за помощь.
Задача ещё не решена.
Других решений пока нет …