Leading Zeros in c++

Gast #6729466
Lesenswert?
• ▲
▼
Hey

mit folgender Schleife kann ich alle Zahlen von 0 bis 199 ausgeben
Ich möchte nun bei einstelligen Zahlen abwechselnd keine, eine oder zwei 
0 asugeben, und bei zweistelligen eine oder zwei. Wie bekomm ich dies 
mit möglichst wenig Code hin?

for (c = 0; c < 200; c++) {
   cout << c << endl;
}
Gast #6729529
Lesenswert?
• ▲
▼
Alex schrieb:
> mit folgender Schleife kann ich alle Zahlen von 0 bis 199 ausgeben
> Ich möchte nun bei einstelligen Zahlen abwechselnd keine, eine oder zwei
> 0 asugeben, und bei zweistelligen eine oder zwei. Wie bekomm ich dies
> mit möglichst wenig Code hin?

1
for (c = 0; c < 200; c++)
2
    printf("%.3d\n", c);
Gast #6729717
Lesenswert?
• ▲
▼
Mit C++ < 20 und ohne printf ist es tatsächlich etwas blöd:
1
for(c = 0; c < 200; c++)
2
  std::cout << std::setw(3) << std::setfill('0') << c << std::endl;

Mit C++20:
1
for(c = 0; c < 200; c++)
2
  std::cout << std::format("{:03}\n", c);

BTW: Ich bin mir aber nicht sicher, ob du das überhaupt meinst.
"bei einstelligen Zahlen abwechselnd keine, eine oder zwei 0 ausgeben" 
wäre ja so etwas:
1
1
2
02
3
003
4
4
5
05
6
006
7
7
8
08
9
009
#6730033
Lesenswert?
• ▲
▼
Alex schrieb:
> for (c = 0; c < 200; c++) {
>    cout << c << endl;
> }

Alex schrieb:
> Wie bekomm ich dies
> mit möglichst wenig Code hin?

Eine Zeile einfügen :)
1
  for (int c = 0; c < 200; c++) {
2
    for (int i=0; i<c%(3-(c>9))-(c>99); ++i) cout << '0';   
3
    cout << c << endl;
4
  }


Fängt wie in deiner Vorgabe bei "0" an, erste Werte:
1
0
2
01
3
002
4
3
5
04
6
005
7
6
8
07
9
008
10
9
11
10
12
011
13
12
14
013
15
14
16
015
17
16
18
017
19
18
20
019
21
...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.