我有這樣的代碼片的QString :: ARG()調整可變的大小,並刪除空格
QString day= ui->direct_pow_lineEdit_1->text();
QString hour = ui->direct_pow_lineEdit_2->text();
QString minute = ui->direct_pow_lineEdit_3->text();
QString destIP = QString("010.000.000.001");
QString data_to_transfer = QString("450%1015%2%3%4").arg(day,2).arg(destIP).arg(hour,2).arg(minute,2);
我想haveis Qt的等效的sprintf(data_to_transfer, "450%02s015%s%02s%02s", day, destIP, hour, minute)
但
QDebug deb = qDebug();
deb << data_to_transfer;
輸出
什麼450 215 1010.000.000.001 1
我怎樣才能正確地修改一個QString,我不想刪除變量之間的空格?
編輯:
空格是由於默認值,如果我定義.arg(day,2,'0')
然後將其與0代替空格填充。但是,如果沒有空格,QString編輯不正確。例如
`QString data_to_transfer = QString("450%1015%2").arg(day, 2, '0').arg(destIP, 2, '0');`
輸出 「450010.000.000.0011531」,其中一天是31
SOLUTION:
這一個解決我的問題,但我希望看到一個更好的解決方案。
QString data_to_transfer = QString("450%1").arg(day,2,'0');
data_to_transfer.append("015");
data_to_transfer.append(destIP);
data_to_transfer.append(QString("%1").arg(hour,2,'0'));
data_to_transfer.append(QString("%1").arg(minute,2,'0'));
我得到這樣的輸出450 1%015010.000.000.001 2 3天= 1小時= 2,分= 3時許我做錯了什麼?我在qeditline上輸入了值 – sven
這是我的錯誤,我忘了在%01之後寫s,但是我仍然有空格,我該如何刪除它們? – sven