Я пытаюсь написать простой декодер UTF-8 для моего назначения. Я довольно новичок в C ++, так что терпите меня здесь ...
Я должен определить, является ли кодировка действительной или нет, и вывести значение символа UTF-8 в шестнадцатеричном формате в любом случае. Скажите, что я прочитал первый байт и использовал этот первый байт, чтобы определить количество байтов в этом символе UTF8. Проблема в том, что после того, как я прочитал первый байт, у меня возникли проблемы с установкой позиции ifstream обратно на один байт и чтением всего символа UTF-8. Я пробовал seekg () и putback (), но я всегда получаю ошибку BUS или какой-то странный вывод, который не соответствует моим тестовым данным. Пожалуйста, помогите, спасибо.
Несмотря на то, что я могу использовать peek () для первого байта, я все равно должен прочитать следующие байты, чтобы определить, является ли кодировка действительной или нет. Проблема возврата позиции потока все еще существует.