私は自分の課題のために単純な UTF-8 デコーダーを書こうとしています。私はC ++にかなり慣れていないので、ここで我慢してください...
エンコーディングが有効かどうかを判断し、どちらの場合も UTF-8 文字の値を 16 進数で出力する必要があります。最初のバイトを読み取り、この最初のバイトを使用してこの UTF8 文字のバイト数を決定したとします。問題は、最初のバイトを読み取った後、ifstream の位置を 1 バイト戻して UTF-8 文字全体を読み取るのに問題があることです。seekg() と putback() を試しましたが、常に BUS エラーが発生するか、テスト データではない奇妙な出力が表示されます。助けてください、ありがとう。
最初のバイトに peek() を使用できますが、エンコーディングが有効かどうかを判断するには、次のバイトを読み取る必要があります。ストリーム位置を戻す問題はまだ残っています。