有用的输入/输出操纵器是std :: setbase , std :: setw和std :: setfill 。这些定义在并且是非常有用的功能。
- std :: base :设置基域标志;将基字段设置为其可能的值之一:根据参数base的dec,hex或oct。
语法:
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.
实现:此代码使用std :: setbase操纵器将十六进制设置为基本字段选择标志。
// CPP Program to illustrate // std::setbase manipulator #include
#include // 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; } 输出:
ff 377
-
std :: setw :设置字段宽度;设置要在输出操作上使用的字段宽度。行为就像在操作员插入/提取其成员的流上用n作为参数调用成员宽度时一样(可以在输入流或输出流中插入/提取该成员宽度)。
语法:std::setw (int n); where n is Number of characters to be used as field width.
// CPP Program to illustrate // std::setw manipulator #include
#include // 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; } 输出:
100 GFG
- 注意:这里给setw()的参数是输出的最小宽度,因此,如果我们输出的宽度大于参数的值,那么输出宽度将不是给定setw()的参数,而是等于输出size(也就是说,输出不会被截断)。 setw()的默认宽度为0。
例子:
#include
#include #include using std::cout; using std::string; using std::endl; int main() { string temp="Hello setw"; cout< 输出:
Hello setw
std :: setfill :设置填充字符;将c设置为流的填充字符。行为就像在将c作为参数在其上插入为操纵器的流上调用c时一样填充成员(可以将其插入输出流中)。
语法:
std::setfill (char_type c); char_type is the type of characters used by the stream (i.e., its first class template parameter, charT).
实施方式:
// CPP Program to test std::setfill manipulator #include
#include // 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; } 输出:
xxxxxxxx77 GeeksGGGGG
使用std :: setw和std :: fill的模式:
// CPP Program to print
// pattern using std::setw and std::fill
#include
#include // 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;
}
}
输出:
*
**
***
****
*****
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。