2013-05-09 18 views
5

Co Próbuję jest napisać coś w tymLewy precyzji dot

file << someFunction(5) << hex << 3; 

i uzyskać wyjście jak ten 00003 zamiast 3 (a 300 będzie 00300, etc)

Uwaga: - Przepraszam, jeśli zostało to wcześniej zadane, nie wiem, co to określenie należy wyszukać, aby uzyskać to:

EDYCJA: - Mam na myśli zero w lewo, włączyłem część szesnastkową tylko po to, aby być jasnym Chcę jest zgodny z tym formatem

+0

Czy oznacza reprezentacji szesnastkowej, czy masz na myśli wyściółkę z zera po lewej stronie? Kod wydaje się wskazywać na pierwszy, ale przykład wejścia i wyjścia wydaje się wskazywać na drugie. – Aleph

+0

Czy błąd lub ostrzeżenie są wyłączone? – PurityLake

Odpowiedz

12

Wierzę, że o to ci chodzi.

#include <iostream> 
#include <iomanip> 
int main() 
{ 
    std::cout << std::setw(5) << std::setfill('0') << 3 << '\n'; 
    return 0; 
} 

Wyjście

00003 

Linki setw, setfill.

Edytuj: Zobacz także std::internalat this question.

4

Zastosowanie

file << setfill('0') << setw(5) << 3; 

dostać 00003 zamiast 3

2

iomanip to co trzeba szukać.

#include <iomanip> 

następnie

file << someFunction(5) << hex << setw(5) << setfill('0') << 3 << endl;