🤖 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标志

//成员函数: 文件输入输出流继承自输入输出流, 拥有文件输入输出流所有的特性