Formatowanie liczby w systemie dwójkowym z zerami wiodącymi

0

Mam problem z wyświetleniem cout. Zmienna i jest z przedziału od 1 do 15 i chciałby uzyskać efekt aby zmienna była wyświetlana na 4 pozycjach np. dla 1 -> '0001' dla 5 ->'0101' itd. Jak robie cout<<"{("<<decToBin(i) to 1->'1' 5->'101' (problemem jest brak tych zer z przodu) i nie bardzo mam koncepcje jak to poprawić, może jakoś printfem?

Z góry bardzo dziękuję za pomoc

4

https://godbolt.org/z/PsTPenq7j

// Edit
Zawartość z pod linka jakby wygasł.

#include <iostream>
#include <iomanip>
#include <bitset>
#include <string>

using namespace std;

int main() {
    bitset<4> bits{5};
    cout << bits << endl;

    cout << "-------" << endl;

    string five = "101";
    cout << setfill('0') << setw(4) << five << endl;
    return 0;
}
3

Jak GodOfCode. zauważył wyżej, std::setfillstd::setw są poprawnym rozwiązaniem.

A oprócz tego, w C++20 masz jeszcze std::formatnieco mniej upierdliwej składni.

1
lifo napisał(a):

Mam problem z wyświetleniem cout. Zmienna i jest z przedziału od 1 do 15 i chciałby uzyskać efekt aby zmienna była wyświetlana na 4 pozycjach np. dla 1 -> '0001' dla 5 ->'0101' itd. Jak robie cout<<"{("<<decToBin(i) to 1->'1' 5->'101' (problemem jest brak tych zer z przodu) i nie bardzo mam koncepcje jak to poprawić, może jakoś prontf'em?
Z góry bardzo dziękuję za pomoc

Początkiem chaotycznego działania jest chaotyczne myślenie o nim.

Nie wyświetlasz cout , żadną miarą, jeśli już to wyświetlasz na cout

1 użytkowników online, w tym zalogowanych: 0, gości: 1