Я понимаю, что sprintf() не безопасно и не портируемо, но почему альтернативы такое го..но?
QString result;
QTextStream(&result) << "pi = " << 3.14;
// result == "pi = 3.14"
А что если мне нужно «03.14000» ?
QString status = QString("Processing file %1 of %2: %3").arg(i).arg(total).arg(fileName);
А что если мне нужно «0x00012345»?
Все новые языки и библиотеки предлагают использовать эти обрубки, которые только пригодны для отладочной информации, да и то не всегда.