【Qt】QString的arg存在的坑【2024年9月26日】
发布时间
阅读量:
阅读量
一、摘要
源于SwiftString的arg方法使用不当造成了一个bug。该接口让用户在输入时使用了%0、%1这样的占位符符号。
二、代码示意
QString strMsg("%1-%2");
strMsg.arg("C:/Windows/%1Dir/a.txt").arg("66");
AI写代码cpp
预期的strMsg
C:/Windows/%1Dir/a.txt"-66
AI写代码cpp
实际的strMsg
C:/Windows/66Dir/a.txt"-%2
AI写代码cpp
三、原理分析
.arg 是链式调用,QString是运算符重载了".",且返回是QString &。
第一次arg之后,strMsg=C:/Windows/%1Dir/a.txt"-%2
第二次的arg会从左开始找占位符,又找到”%1“,然后拿”66“替换”%1“。
四、总结
QString的arg用法很方便,但是有雷,需谨防能输入占位符%1-99的情况。
全部评论 (0)
还没有任何评论哟~
