Getline() достигает конца файла при чтении символа эмодзи UTF-8C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Гость
 Getline() достигает конца файла при чтении символа эмодзи UTF-8

Сообщение Гость »


Я пишу программу на C++, которая обрабатывает большие файлы с разделителями.

У меня есть CSV-файл UTF-8, содержащий строку с символом (emoji?) 🌟. Выглядит это примерно так:

123,"Джеймс","piotrj🌟","1996-01-28" Когда я вызываю getline() для этой строки, он считывает эмодзи, а затем останавливается. Таким образом, результирующая строка из getline() — это 123,"james","piotrj. Я не совсем понимаю, почему это происходит. Если бы мне пришлось гадать, я бы Я неправильно использую локаль, и этот смайлик (или его часть) читается как EOF.

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

У меня есть пример кода:

локаль loc("en_US.UTF8"); wifstream inFile; inFile.imbue(лок); inFile.open("МойФайл.csv"); если (inFile.is_open()) { строка строка; если (getline(inFile, str)) { wcout
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»