88 Stimmen

Führende Nullen mit C++-Ausgabeoperator drucken?

Wie kann ich meine Ausgabe in C++ formatieren? Mit anderen Worten, was ist das C++-Äquivalent zur Verwendung von printf wie diese:

printf("%05d", zipCode);

Ich weiß, ich könnte einfach die printf in C++, aber ich würde den Ausgabeoperator << .

Würden Sie einfach das Folgende verwenden?

std::cout << "ZIP code: " << sprintf("%05d", zipCode) << std::endl;

0voto

A Pars Punkte 1595

Einfache Antwort, aber sie funktioniert!

ostream &operator<<(ostream &os, const Clock &c){
// format the output - if single digit, then needs to be padded with a 0
int hours = c.getHour();

// if hour is 1 digit, then pad with a 0, otherwise just print the hour
(hours < 10) ? os << '0' << hours : os << hours;

return os; // return the stream
}

Ich verwende einen ternären Operator, aber er kann wie folgt in eine if/else-Anweisung übersetzt werden

if(c.hour < 10){
 os << '0' << hours;
}
 else{
  os  << hours;
 }

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X