fork download
  1. // setfill example
  2. #include <iostream> // std::cout, std::endl
  3. #include <iomanip> // std::setfill, std::setw
  4.  
  5. class IosFlagSaver {
  6. public:
  7. explicit IosFlagSaver(std::ostream& _ios):
  8. ios(_ios),
  9. f(_ios.flags()) {
  10. }
  11. ~IosFlagSaver() {
  12. ios.flags(f);
  13. }
  14.  
  15. IosFlagSaver(const IosFlagSaver &rhs) = delete;
  16. IosFlagSaver& operator= (const IosFlagSaver& rhs) = delete;
  17.  
  18. private:
  19. std::ostream& ios;
  20. std::ios::fmtflags f;
  21. };
  22.  
  23.  
  24. int main1 () {
  25.  
  26. IosFlagSaver iosfs(std::cout);
  27.  
  28. using std::cout;
  29. using std::setw;
  30.  
  31.  
  32.  
  33. cout << std::left <<
  34. setw(10) << "12345," <<
  35. setw(12) << "abcdefghik," <<
  36. setw(3) << "ABC" << "\n";
  37.  
  38. return 0;
  39. }
  40.  
  41. int main2 () {
  42.  
  43. IosFlagSaver iosfs(std::cout);
  44.  
  45. using std::cout;
  46. using std::setw;
  47.  
  48. cout << std::left <<
  49. setw(10) << "12345," <<
  50. setw(12) << "abcdefghik," <<
  51. setw(3) << "ABC" << "\n";
  52.  
  53. return 0;
  54. }
  55.  
  56. int main () {
  57.  
  58. using std::cout;
  59. using std::setw;
  60.  
  61. // os_r.fill(' ');
  62. // os_r.width(0);
  63.  
  64.  
  65. cout << "Calling main1" << std::endl;
  66. main1();
  67.  
  68. cout << "Calling main2" << std::endl;
  69. main2();
  70.  
  71. return 0;
  72. }
Success #stdin #stdout 0s 3468KB
stdin
Standard input is empty
stdout
Calling main1
12345,    abcdefghik, ABC
Calling main2
12345,    abcdefghik, ABC