本文介绍: C++ I/O流

概念

一 流的概念

  1. 数据的无结构化传递

  2. C++流(外部输入计算机计算机输出外部输入输出过程

  3. C++11标准:I/O 标准类 库

  4. /*
    I:    in     输入
    O:    out    输出
    流:   数据流
    */

使用

fstream 常用文件操作

常用成员函数

01 打开文件 open

模式标记 适用对象 作用
ios::in ifstream fstream 打开文件用于读取数据。如果文件存在,则打开出错
ios::out ofstream fstream 打开文件用于写入数据。如果文件存在,则新建文件;如果文件原本就存在,则打开清除原来的内容
ios::app ofstream fstream 打开文件,用于在尾部添加数据。如果文件不存在,则新建该文件
ios::ate ifstream 打开一个已有的文件,并将 文件读指针 指向文件末尾。如果文件不存在,则打开出错
ios::trunc ofstream 打开文件时会清空内部存储的所有数据,单独使用时与ios::out相同
ios::binary ifstream ofstream fstream 二进制方式打开文件。若不指定模式,则以文本模式打开
ios::in | ios::out fstream 打开已存在的文件,既可读取内容,也可向其写入数据。文件刚打开时,原有内容保持不变,如果文件不存在,则打开出错
ios::in | ios::out ofstream 打开已存在的文件,可向其写入数据。文件刚打开时,原有内容保持不变,如果文件不存在,则打开出错
ios::in | ios::out | ios::trunc fstream 打开文件,既可读取其内容,也可向其写入数据。如果文件不存在,则新建该文件;如果文件原本就存在,则打开时清除原来的内容

02 操作文件

//1.判断文件是否成功打开
obj.is_open();//返回值
//2.是否到达文件尾
obj.eof();//返回值
//3.写入❤️一个 字符
obj.put('s');
//4.读取❤️一个 字符
char ch = 0;
obj.get(ch);
ch = obj.get();
//5.移动文件指针
/*参数移动距离,开始移动的位置*/
/*
1 ios::beg 文件开头
2 ios::end 文件结尾
3 ios::cur 当前位置
*/
obj.seekp(2, ios::cur);
//6.二进制读写文件     大小存储
/* 写 write */
obj.open("test.txt",ios::out);
int num = 0X11223344;
obj.write((const char*)&num,sizeof(int));
obj.close();
/* 读 read */
obj.open("test.txt",ios::in);
int val = 0;
obj.read((char*)&val,sizeof(int));
obj.close();
cout << hex << "val = 0X-" << val << endl;

03 关闭文件 close

使用重载的 << &gt;>

obj.open("test.txt",ios::out);
​
obj << "HAPPY NEW YEAR!" << endl;
obj << "恭喜发财" << endl;
obj << "10086" << endl;          //
​
obj.close();
obj.open("test.txt",ios::in);
​
char str_1[128];
char str_2[128];
int num;
obj >> str_1 >> str_2 >> num >> endl;
​
obj.close();

原文地址:https://blog.csdn.net/weixin_61901599/article/details/122901158

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_41168.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注