#cpp
Работаю в ubuntu. Имеется utf-8 файл, в котором записаны как русские, так и английские
слова. Как корректно считать из него русские слова?
wfstream fin(_fileName);
if (!fin)
throw std::exception();
wstring nextLine;
while(fin)
getline(fin, nextLine);
fin.close();
getline() почему-то вообще не видит русских символов и читает только английские
Ответы
Ответ 1
Если у Вас файл в UTF-8, то и используйте однобайтовые потоки ввода, а также однобайтовую string: fstream fin(_fileName); if (!fin) throw std::exception(); string nextLine; while(fin) getline(fin, nextLine); fin.close(); Теперь строки у Вас будут читаться корректно. Но это только начало Ваших проблем, а ничуть не их окончание. Как Вы собираетесь дальше работать с полученными данным? std::string это набор символов типа char, и этот класс ничего не знает об UTF-8.
Комментариев нет:
Отправить комментарий