QString.sprintf()返回字符串而不格式化它

时间:2015-03-09 16:49:39

标签: c++ printf qstring

我有一种奇怪的情况,即使用简单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调用时被破坏了。

任何有想法的人都会去吗?

0 个答案:

没有答案