C++分析——文件操作

本文详细探讨了C++中的文件操作,重点介绍了std::ofstream和std::ifstream两类。通过实例代码展示了如何打开文件、设置文件指针、写入数据和读取数据的不同方法,包括单个字符、数据块以及读到特定字符或文件末尾的读取方式。
摘要由CSDN通过智能技术生成

C++文件操作主要依靠两个类来进行

1、 写文件操作类:std::ofstream
2、 读文件操作类:std::ifstream

std::fstream类可以进行读写操作,但一般用上面两个类进行,分工明确。

需要包括的头文件:

#include <iostream>
#include <fstream>

C++操作函数像C需要将相对地址转换成绝对地址。

文件操作结构体

typedef struct Cpp_sys_info
{
    char name[10];
    char group[10];
    int  permissions;
}Cpp_User_info;

文件操作方法

打开文件属性open

ios::in     :以输入方式打开文件
ios::out    :以输出方式打开文件
ios::app    :以追加的方式打开文件,所有输出附加在文件末尾
ios::ate    :文件打开后,文件流指针定位到文件尾,和ios::app功能相同
ios::trunc  :如果文件已存在则先删除该文件 
ios::binary :以二进制的方式打开文件

具体用法在后面的示例中展现。

设置文件当前指针

seekp:设置写文件指针
seekg:设置读文件指针

ios::beg:  文件开头 
ios::cur:  文件当前位置 
ios::end:  文件结尾
m_steam_read.seekg(-8L,ios::end);   //把读文件指针移动到从结尾位置起始,往负方向的6个字节处
m_steam_write.seekp(5L,ios::beg);   //把写文件指针移动到从文件开头起始,往正方向的5个字节处

写文件操作类std::ofstream

写入数据

源码

 //std::ofstream steam_write(p_argv[1],ios::in | ios::trunc);       //比较简单的初始化函数,直接读取文件
std::ofstream steam_write;
m_steam_write.open(p_argv[1],ios::in | ios::trunc);         //比较正式的写法,更加直观

 if (!steam_write.is_open())                            //判断文件是否打开成功
 {
        cout << "wirte is NO" << endl;
        return;
 }

 steam_write << __func__ << " func is wirte test " << 45 << 0x61 <<endl;        //写入数据
 steam_wr
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值