Tutorialspoint.dev

std::setbase, std::setw , std::setfill in C++

The useful input/output manipulators are std::setbase, std::setw and std::setfill. These are defined in and are quite useful functions.

  • std::base : Set basefield flag; Sets the base-field to one of its possible values: dec, hex or oct according to argument base.

    Syntax :

    std::setbase (int base);
    decimal : if base is 10
    hexadcimal : if base is 16
    octal : if base is 8
    zero : if base is any other value.
    

    Implementation : This code uses the std::setbase manipulator to set hexadecimal as the base field selective flag.

    // CPP Program to illustrate
    // std::setbase manipulator
    #include <iostream>
    #include <iomanip> // std::setbase
      
    int main()
    {
        // set base to hexadecimal
        std::cout << std::setbase(16);
      
        // displaying 255 in hexadecimal
        std::cout << 255 << std::endl;
      
        // set base to Octal
        std::cout << std::setbase(8);
      
        // displaying 255 in Octal
        std::cout << 255 << std::endl;
        return 0;
    }

    Output:



    ff
    377
    
  • std::setw : Set field width; Sets the field width to be used on output operations. Behaves as if member width were called with n as argument on the stream on which it is inserted/extracted as a manipulator (it can be inserted/extracted on input streams or output streams).
    Syntax :

    std::setw (int n);
    where n is Number of characters to 
    be used as field width.
    
    // CPP Program to illustrate
    // std::setw manipulator
    #include <iostream>
    #include <iomanip> // std::setw
      
    int main()
    {
      
        // set width of 10
        std::cout << std::setw(10);
        std::cout << 100 << std::endl;
      
        std::string str = "GFG";
      
        // set width of 12
        std::cout << std::setw(12);
      
        std::cout << str << std::endl;
        return 0;
    }

    Output:

           100
             GFG
    
  • std::setfill : Set fill character; Sets c as the stream’s fill character. Behaves as if member fill were called with c as argument on the stream on which it is inserted as a manipulator (it can be inserted on output streams).

    Syntax :

    std::setfill (char_type c);
    char_type is the type of characters 
    used by the stream (i.e., its first class template 
    parameter, charT).
    

    Implementation :

    // CPP Program to test std::setfill manipulator
    #include <iostream>
    #include <iomanip> // std::setfill, std::setw
      
    int main()
    {
        // setfill is x and width is set as 10
        std::cout << std::setfill('x') << std::setw(10);
      
        std::cout << 77 << std::endl;
      
        std::string str = "Geeks";
      
        // setfill is G and width is set as 10
        // And std::left is used set str to left side
        std::cout << std::left << std::setfill('G') << std::setw(10);
      
        std::cout << str << std::endl;
        return 0;
    }

    Output:

    xxxxxxxx77
    GeeksGGGGG
    

Pattern using std::setw and std::fill :

// CPP Program to print
// pattern using std::setw and std::fill
#include <iostream>
#include <iomanip> // std::setfill, std::setw
  
int main()
{
    int n = 5;
    for (int i = 1; i <= n; i++) {
        std::cout << std::left << std::setfill(' ') << std::setw(n);
        std::cout << std::string(i, '*') << std::endl;
    }
}

Output:

*
**
***
****
*****

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.



This article is attributed to GeeksforGeeks.org

leave a comment

code

0 Comments

load comments

Subscribe to Our Newsletter