Это тоже ответ Вишеша, верно?
юбят
QString("Put something here %1 and here %2")
.arg(replacement1)
.arg(replacement2);
но все становится зудящим, как только у вас есть малейший шанс, чтоreplacement1
на самом деле содержит%1
или даже%2
в любом месте. Затем второйQString::arg()
заменит только вновь введенный%1
или оба%2
вхождения. Во всяком случае, вы не получите буквальное"%1"
что вы, вероятно, намеревались.
Есть ли какой-нибудь стандартный трюк для преодоления этого?
Если вам нужен пример для игры, возьмите
#include <QCoreApplication>
#include <QDebug>
int main()
{
qDebug() << QString("%1-%2").arg("%1").arg("foo");
return 0;
}
Это будет выводить
"foo-%2"
вместо
"%1-foo"
как и следовало ожидать (нет).
qDebug() << QString("%1-%2").arg("%2").arg("foo");
дает
"foo-foo"
а также
qDebug() << QString("%1-%2").arg("%3").arg("foo");
дает
"%3-foo"