~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
开发工具与关键技术:VS2015与 C++
撰写时间:2019/07/16
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
设置标志字:列举部分。
状态标志 | 值 | 含义 | 输入/输出 |
skipws | 0X0001 | 跳过输入空白符 | I |
left | 0X0002 | 左对齐输出 | O |
right | 0X0004 | 右对齐输出 | O |
internal | 0X0008 | 在符号位和基指示符后填入字符 | O |
dec | 0X0010 | 转换基制为十进制 | I/O |
oct | 0X0020 | 转换基制为八进制 | I/O |
hex | 0X0040 | 转换基制为十六进制 | I/O |
设置标志位:
函数 | 功能 |
long flags(long lFlags); long flags()const; | 用参数lFlags更新标志字 返回标志字 |
long setf(long lFlags); long setf(long lFlags,long lMask); | 设置lFlags指定的标志位 将lMask指定的位清0,然后设置lFlags指定位 |
long unsetf(long lMask); | 将参数lMask指定的标志位清0 |
int width(int nw); | 设置下一个输出项显示的宽度为nw |
char fill(char cFill); | 空白位置以字符参数cFill填充 |
int precision(int np); | 用参数np设置数据显示精度 |
例子:
void main(){
char *strchar = "HelloWorld";
cout.setf(ios::right); // 左对齐
cout.width(5); //设置下一个输出向显示宽度为5
cout << 123 << endl;
}
格式控制符:控制符是istream和ostream类定义了一批函数,作为重新插入运算符<<或提取运算符>>的右操作数控制I/O格式。
iostream几个常用的控制符:
控制符 | 功能 | 输入/输出 |
endl | 输出一个新行符,并清空流 | O |
ends | 输出一个结束符,并清空流 | O |
flush | 清空流缓冲区 | O |
dec | 用十进制表示法输入或输出数值 | I/O |
hex | 用十六进制表示输入或输出数值 | I/O |
oct | 用八进制表示法输入或输出数值 | I/O |
ws | 提取空白字符 | I |
以十进制输入:cin >> dec >> a;
格式控制符: iomanip.h 头文件中
控制符 | 功能 | 输入/输出 |
resetiosflags(ios::lFlags) | 清除lFlags指定的标志位 | I/O |
setiosflags(ios::lFlags) | 设置lFlags指定的标志位 | I/O |
setbase(int base) | 设置基数,base = 8,10,16 | I/O |
setfill(char c) | 设置填充符c | O |
setprecision(int n) | 设置浮点数输出精度 | O |
setw(int n) | 设置输出宽度 | O |
串流:
串流类是ios中的派生类。
C++的串流对象可以连接string对象或字符串。
串流提取数据时对字符串按变量类型解释;插入数据时把类型数据转换成字符串。
串流I/O具有格式化功能。
从输入串流对象提取数据:
char *strchar = "HelloWorld this is 36 * 0.5";
string a, b, c, d;
double e, f;
istringstream input(strchar); // 这个 #include <sstream>
input >> a >> b >> c >> e >> d >> f;
cout << a << b << c << e << d << f << endl;
向输出串流对象插入数据:
char buf[20];
ostrstream Output( buf, sizeof(buf) ) ;
double x, y ;
cout << "输入 x : " ;
cin >> x ;
cout << "输入 y : " ;
cin >> y ;
//将x * y 插入到 buf 中去
Output << x << " * " << y << " = " << x*y << endl ;