文章目录
article
iostream
AI文章摘要
qwen-turbo-latest
加载中...
1. istream
包含头文件#include<iostream>
1.1 成员变量
- fail标志位: 流析取失败时(流析取类型不匹配、者读到流末尾没有内容了和流指针设置错误), 会将fail标志位值1
- eof标志位: 流析取到末尾时, 会将eof标志位置1. 注意流缓存的两种情况使"a" 和"a “, 第二种用析取符时并没有读到末尾!!!
1.2 成员函数
//构造函数
系统提供istream的默认流对象cin(), 注意程序前台运行期间, 标准输入不会关闭, 因此eof判断流末尾的方法将会失效.
//成员函数:
istream& operator>>(…)流析取运算符, 忽略开头的空格和换行读到空格、换行和文件末尾停止, 并将数据转换为目标类型.
istream& read(char* buff , int count)读入流缓冲区count个字节到字符数组, 读完count个字节或读到文件末尾终止.
istream& get(char* buff , int count)读取流缓冲区count-1个字节到字符数组并添加\0, 读完count-1个字节、读到\n或读到文件末尾终止. 参数缺省等同于getchar()函数
int& peek()读取流缓存中的一个字符, 但不清除它, 适用于判断流指针当前的字符类型
istream& ignore(int Num=1, char delm=EOF)忽略到字符delm前的Num个字节. 默认delm为EOF即读到文件末尾
istream& seekg(int pos)将读(g)指针移动到pos位置, 设置错误则将fail标志位置1.
int tellg()返回读(g)指针当前的位置, 若流标志位被置位, 则返回-1.
bool fail()输入流的fail标志位被置位时, 函数返回true,
bool eof()输入流的eof标志位被置位时, 函数返回true.
void clear()重置输入流的标志位包含fail、eof和bad标志位. 当流标志位置位时, 必须使用clear函数才能继续操作
2. ostream
2.1 成员变量
- ios::left 和ios::right 设置输出左对齐和右对齐
- ios::oct 8进制, ios::dec 10进制, ios::hex 16进制, ios::showbase 显示进制前缀, ios::fixed 定点数表示模式 所有的流标志都配置了相应的函数, 在cout中可以直接使用位移运算符设置
2.2 成员函数
//构造函数:
系统提供ostream的默认流对象cout(不同的编译器对cout的实现有差别, seekp, tellp函数是没有意义的)
//成员函数
ostream& operator<<(…)流插入运算符, 将参数类型按特定的格式转换为字符输出到流缓存中
ostream& write(char* buff, int count)将字符数组中的count个字节值写入流缓存
ostream& put(char ch)和putchar()函数一致
precision(int p)设置输出流浮点有效数字, 若数超出有效数字个数, 则使用科学计数法表示. 定点模式下为小数点后小数个数
width(int w)设置cout输出的列宽, 只对下一条cout语句有效
fill(char ch)设置cout输出的空白区域填充字符, 只对下一条cout语句有效
int seekp(int pos)将写(p)指针移动到pos位置
int tellp()返回写(p)指针当前的位置
istream& flush()刷新流缓冲区, 立即执行实际I/O操作, windows下cout立即执行
setf(ios::xxx) 和 usetf(ios::xxx)装载和卸载流标志, 所有的流标志可以不通过setf设置, 可以通过流插入运算符设置
2. ifstream
文件流包含在fstream头文件中关键的ifstream、ofstream和fstream继承关系如下:
2.1 成员变量:
- open_mode
- ios:: in 和fopen的r模式一致
- ios::ate 打开时文件指针指向文件末尾
- ios::binary 解释为二进制文件
2.2 成员函数
//构造函数
ifstream(char* filename , open_mode _mode); 构造函数打开
//成员函数: 文件输入流继承自istream拥有和cin相似的操作, 注意eof(), tellg() , seekg()等函数的运用
open(char* filename , open_mode _mode)成员函数打开
is_open()判断文件是否打开成功
close()关闭文件
3. ofstream
成员变量:
- open_mode:
- ios::out (| ios::trunc) 和fopen的w模式一致, trunc是覆盖截断的意思(ios::out默认使用这个属性)
- ios::out | ios::app 和fopen的a模式一致, app是追加的意思
- 补充参数: ios::ate 打开时文件指针指向文件末尾
- 补充参数: ios::binary 解释为二进制文件
//构造函数:
ofstream(char* filename , open_mode _mode); 构造函数打开
//成员函数: 文件输入流继承自ostream拥有和cout相似的操作, 注意eof(), tellp() , seekp()等函数的运用
4. fstream
成员变量:
- open_mode:
- ios:: in | ios::out 和fopen的r+模式一致
- ios:: in | ios::out | ios::trunc 和fopen的w+模式一致
- 补充参数: ios::ate 打开时文件指针指向文件末尾
- 补充参数: ios::binary 解释为二进制文件
成员函数
//构造函数:
fstream(char* filename , open_mode _mode)构造函数打开
//成员函数: 文件输入输出流继承自输入输出流, 拥有文件输入输出流所有的特性
3. stringstream
成员变量
成员函数
//构造函数:
fstream(char* filename , open_mode _mode)构造函数打开,注意stringstream对象拥有向bool转换的转换函数, 返回的是eof标志
//成员函数: 文件输入输出流继承自输入输出流, 拥有文件输入输出流所有的特性