मैं एक नंबर को "स्ट्रिफ़ाइज़" करना चाहता हूं और शून्य-पेडिंग जोड़ना चाहता हूं, जैसे कि printf("%05d")
अगर 5 लाख से कम है तो अग्रणी शून्य कैसे जोड़ेंगे।
जवाबों:
इसे इस्तेमाल करो:
QString number = QStringLiteral("%1").arg(yourNumber, 5, 10, QLatin1Char('0'));
5 यहाँ 5 से मेल खाती है printf("%05d")
। 10 मूलांक है, आप हेक्स में संख्या को प्रिंट करने के लिए 16 डाल सकते हैं।
"%1"
?
%2
आदि। देखें doc.qt.io/qt-5/qstring.html#arg
QString QString :: rightJustified (int चौड़ाई, QChar भराव = QLatin1Char (''), बूल ट्रंकट = गलत) const
int myNumber = 99;
QString result;
result = QString::number(myNumber).rightJustified(5, '0');
परिणाम अब 00099 है
संक्षिप्त उदाहरण:
int myNumber = 9;
//Arg1: the number
//Arg2: how many 0 you want?
//Arg3: The base (10 - decimal, 16 hexadecimal - if you don't understand, choose 10)
// It seems like only decimal can support negative numbers.
QString number = QString("%1").arg(myNumber, 2, 10, QChar('0'));
Output will be: 09
प्रयत्न:
QString s = s.sprintf("%08X",yournumber);
संपादित करें: http://qt-project.org/doc/qt-4.8/qstring.html#dprintf पर डॉक्स के अनुसार :
चेतावनी : हम नए Qt कोड में QString :: sprintf () का उपयोग करने की अनुशंसा नहीं करते हैं। इसके बजाय, QTextStream या arg () का उपयोग करने पर विचार करें, जो दोनों यूनिकोड स्ट्रिंग्स को मूल रूप से समर्थन करते हैं और टाइप-सुरक्षित हैं। यहाँ एक उदाहरण है जो QTextStream का उपयोग करता है:
QString result;
QTextStream(&result) << "pi = " << 3.14;
// result == "pi = 3.14"
इस विधि से अनुपलब्ध सुविधाओं के लिए अन्य डॉक्स पढ़ें।
मैं VB 5 के बाद से एक तकनीक का उपयोग करता हूं
QString theStr=QString("0000%1").arg(theNumber).right(4);