fork download
  1. #include <iostream>
  2. #include <iomanip>
  3.  
  4. struct hex
  5. {
  6. hex(int val) : value(val){ }
  7. int value;
  8. };
  9.  
  10. std::ostream& operator<<(std::ostream& os, hex h)
  11. {
  12. auto oldflags = os.flags();
  13. auto oldfill = os.fill();
  14.  
  15. os.setf(std::ios::hex, std::ios::basefield);
  16. os.setf(std::ios::uppercase);
  17. os.fill('0');
  18.  
  19. os << h.value;
  20.  
  21. os.fill(oldfill);
  22. os.setf(oldflags);
  23. return os;
  24. }
  25.  
  26. int main()
  27. {
  28. for (int i = 0; i < 4; i++)
  29. std::cout << std::setw(5) << ' ' << std::setw(16) << hex(i) << std::endl;
  30. }
Success #stdin #stdout 0s 3296KB
stdin
Standard input is empty
stdout
     0000000000000000
     0000000000000001
     0000000000000002
     0000000000000003