我正在尝试为我的作业编写一个简单的 UTF-8 解码器。我对 C++ 还很陌生,所以请耐心等待...
我必须确定编码是否有效,并在任何一种情况下都以十六进制输出 UTF-8 字符的值。假设我已经读取了第一个字节并使用这个第一个字节来确定这个 UTF8 字符中的字节数。问题是,在我读取第一个字节后,我无法将 ifstream 位置设置回一个字节并读取整个 UTF-8 字符。我已经尝试过 seekg() 和 putback(),但我总是得到 BUS 错误或一些不是我的测试数据的奇怪输出。请帮忙,谢谢。
即使我可以将 peek() 用于第一个字节,但我仍然必须读取以下字节以确定编码是否有效。设置回流位置的问题仍然存在。