机械手正在提供有助于修改输入/输出流的功能。这并不意味着我们更改变量的值,它仅使用插入(<<)和提取(>>)运算符修改I / O流。
例如,如果要打印十六进制值100,则可以将其打印为:
cout<
机械手类型
有多种类型的操纵器:
- 没有参数的操纵器: IOStream库定义的最重要的操纵器在下面提供。
- endl :在ostream中定义。它用于输入新行,并在输入新行后刷新(即,强制所有写在屏幕或文件中的输出)输出流。
- ws :它在istream中定义,用于忽略字符串序列中的空格。
- end :它也在ostream中定义,并且在输出流中插入一个空字符。它通常与std :: ostrstream一起使用,当相关的输出缓冲区需要为null终止以作为C字符串。
- flush :它也在ostream中定义,并刷新输出流,即,它强制将所有输出写入屏幕或文件中。如果不进行刷新,则输出将相同,但可能不会实时显示。
例子:
#include
#include #include #include using namespace std; int main() { istringstream str(" Programmer"); string line; // Ignore all the whitespace in string // str before the first word. getline(str >> std::ws, line); // you can also write str>>ws // After printing the output it will automatically // write a new line in the output stream. cout << line << endl; // without flush, the output will be the same. cout << "only a test" << flush; // Use of ends Manipulator cout << "\na"; // NULL character will be added in the Output cout << "b" << ends; cout << "c" << endl; return 0; } 输出:Programmer only a test abc
- 带参数的操纵器:一些操纵器与setw(20),setfill(’*’)等参数一起使用。这些都在头文件中定义。如果要使用这些操纵器,则必须在程序中包含此头文件。
例如,您可以使用以下操纵器设置最小宽度,并用所需的任何字符填充空白:std :: cout << std :: setw(6)<< std :: setfill(’*’);
-
中的一些重要操纵器是: - setw(val):用于设置输出操作中的字段宽度。
- setfill(c):用于在输出流上填充字符“ c”。
- setprecision(val):将val设置为浮点值精度的新值。
- setbase(val):用于为数字值设置数字基值。
- setiosflags(flag):用于设置参数mask指定的格式标志。
- resetiosflags(m):用于重置由参数mask指定的格式标志。
-
中的一些重要操纵器是: - showpos:强制在正数上显示正号。
- noshowpos:强制不要在正数上写正号。
- showbase:表示数值的数字基数。
- 大写:将数字值强制为大写字母。
- nouppercase:强制将小写字母用于数字值。
- 固定:对浮点值使用十进制表示法。
- 科学的:它使用科学的浮点数表示法。
- hex:读取和写入整数的十六进制值,其作用与setbase(16)相同。
- dec:读取和写入整数的十进制值,即setbase(10)。
- oct:读取和写入整数的八进制值,即setbase(10)。
- 左:将输出调整到左侧。
- 右:将输出调整到右边。
例子:
#include
#include using namespace std; int main() { double A = 100; double B = 2001.5251; double C = 201455.2646; // We can use setbase(16) here instead of hex // formatting cout << hex << left << showbase << nouppercase; // actual printed part cout << (long long)A << endl; // We can use dec here instead of setbase(10) // formatting cout << setbase(10) << right << setw(15) << setfill('_') << showpos << fixed << setprecision(2); // actual printed part cout << B << endl; // formatting cout << scientific << uppercase << noshowpos << setprecision(9); // actual printed part cout << C << endl; } 输出:0x64 _______+2001.53 2.014552646E+05
-
参考:
- http://www.cplusplus.com/reference/iomanip/
- http://www.cplusplus.com/reference/ios/basic_ios/
- http://www.cplusplus.com/reference/ios/
要从最佳影片策划和实践问题去学习,检查了C++基础课程为基础,以先进的C++和C++ STL课程基础加上STL。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。