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
hexadecimal : 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
#include <iostream>
#include<iomanip>
#include<string>
using std::cout;
using std::string;
using std::endl;
int main() {
string temp= "Hello setw" ;
cout<<std::setw(5)<<temp<<endl;
return 0;
}
|
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
#include <iostream>
#include <iomanip> // std::setfill, std::setw
int main()
{
std::cout << std::setfill( 'x' ) << std::setw(10);
std::cout << 77 << std::endl;
std::string str = "Geeks" ;
std::cout << std::left << std::setfill( 'G' ) << std::setw(10);
std::cout << str << std::endl;
return 0;
}
|
100
GFG
- Note: Here argument given to setw() is minimum width of the output, so if we have output with more width than argument’s value then output width will not be exactly the argument given to setw() but will be equal to the output size(i.e., the output will not get truncated). Default width of setw() is 0.
Example:
CPP
#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;
}
}
|
Hello setw
- 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).
xxxxxxxx77
GeeksGGGGG
Pattern using std::setw and std::fill :
CPP
#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:
*
**
***
****
*****
Last Updated :
10 Nov, 2021
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment...