You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 19:21:59