C++ Qt5:如何将字符回退到QTextStream中?
QTextStream 字符回退的实现方法
你直接用QTextStream自带的unget()方法就能解决这个问题。
- 当你用
stream >> ch读出一个字符后,调用stream.unget(ch)就能把这个字符放回读取位置的最前面,下次调用stream >> ch时第一个读到的就是它。 - 要是你只是想回退刚读的最后一个字符,也可以不带参数直接调用
unget(),它会自动把上一次读的字符退回去。
给你段简单的示例代码参考:
QTextStream stream(&inputDevice); QChar ch; // 读取一个字符 stream >> ch; // 回退该字符,两种写法都可以 stream.unget(ch); // stream.unget(); // 无参版本,自动回退上一次读取的字符 // 再次读取,得到的就是刚才回退的字符 stream >> ch;
另外要注意,unget()一次只能回退一个字符,如果需要回退多个,得自己维护一个缓冲区暂存读过的字符,之后按需重新读取。
内容的提问来源于stack exchange,提问作者Quasy
相关产品推荐
相关产品推荐

