我有一种奇怪的情况,即使用简单QString.sprintf()
参数调用的某些内容(非常罕见)int
似乎对我不起作用:
QString debug_str;
if( doSomething )
{
for( int i=5; i>0; --i )
{
LOG_INFO( debug_str.sprintf("remaining steps: %d\n", i ) );
}
}
这是我通常收到的(很多次):
remaining steps: 5
remaining steps: 4
remaining steps: 3
remaining steps: 2
remaining steps: 1
但是在某些时候QString.sprintf
停止格式化字符串并返回:
remaining steps: 5
remaining steps: 4
remaining steps: %d
remaining steps: %d
remaining steps: %d
我已经使用记录器进行了检查......它确实从sprintf
调用中接收了这个未格式化的字符串。从这一点开始......这个QString在sprintf调用时被破坏了。
任何有想法的人都会去吗?