目录
文件操作
- 流系体系
- 流:数据从一个对象到另一个对象的传输。
- 功能:标准输入输出+文件处理
分类 含义 文本流 一串ASCII子符 二进制流 一串二进制
- ‘ios’是抽象类
- ‘ostream’是‘cout’、‘clog’、‘cerr’的类
- ‘istream’是‘cin’的类
全局流变量 名称 缓存 ‘cout’ 标准输出流 带缓存 ‘cin’ 标准输入流 带缓存 ‘clog’标准日志流 带缓存 ‘cerr’ 标准错误流 无缓存 - 输出流默认设置
类型 进制 宽度 对齐 填充 精度 整数 十进制 0 右对齐 空格 1 实数 十进制 0 右对齐 空格 6位数 字符串 - 0 右对齐 空格 字符串实际长度
-
格式控制
-
格式控制成员函数
流对象.格式控制成员函数(实参)
- 1
-
预定义格式控制函数
预定义格式控制函数(实参)
- 1
-
-
流的输出控制格式
进制 | ‘flags()’、‘setf()’、‘unsetf()’ | ‘setiosflags()’ | ‘dec’、‘oct’、‘hex’、‘showbase’ | 能继续使用 |
宽度 | ‘width(n)’ | ‘setw(n)’ | - | 不能连续 |
对齐 | ‘flags()’、‘setf()’、‘unsetf’ | ‘setiosflags()’ | ‘right’、‘left’、‘internal’ | 能连续使用 |
填充 | ‘fill(c)’ | ‘setfill(c)’ | - | 能连续使用 |
- 流的输出控制格式:‘dec’、‘oct’、‘hex’
- 数据输入成员函数
- 子符输入成员函数:‘get()’
- 子符串输入成员函数:‘getline()’
- 数据输出成员函数:‘put() ’
对齐方式
flag manipulator 作用 ‘ios::left’ ‘left’ 居左 ‘ios::right’ ‘right’ 居右 ‘ios::internal’ ‘internal’ 输出符号或进制后填充
#include <iostream>
using namespace std;
int main(){
int n = -11;
cout.width(6);
cout.flags(ios::right);
cout << n << endl;
cout.width(6);
cout.flags(ios::left);
cout << n << endl;
cout.width(6);
cout.flags(ios::internal);
cout << n << endl;
}
#include <iostream>
#include <iomanip>
using namespace std;
int main(){
int n = -11;
cout << setw(6) << right << n << endl;
cout << setw(6) << left << n << endl;
cout << setw(6) << internal << n << endl;
}
#include <iostream>
using namespace std;
int main(){
int n = -11;
cout.width(6); cout << left << n << endl;
cout.width(6); cout << right << n << endl;
cout.width(6); cout << internal << n << endl;
}
整数输出格式
flag | manipulator | 作用 | 是否默认 |
---|