C语言二进制文件读取解析

本文档展示了如何使用C语言进行二进制文件的读取和写入操作,通过`CFilePackage`类实现了文件的打开、读取、写入和关闭功能。在读取时,首先读取文件头信息,然后读取每个文件的索引,最后读取具体的数据;在写入时,先写入文件头,再依次写入文件索引和数据。
摘要由CSDN通过智能技术生成

// FileDefine.h

#ifndef _FILEDEFINE_H_

#define _FILEDEFINE_H_
#include <string>
using namespace std;
/*
文件操作,对磁盘的读写:
fopen 打开模式 和 缓存区大小
打开模式:
r:read 读没有文件会读取失败
w:write 写会清空文件,没有可以创建文件
a:append 写追加没有文件可以创建文件

+: input + output

b: binary 没有b修饰的是默认ascii文本操作

t: text,是文本文件方式打开读写,如果没有b修饰,那么默认就是t 文本方式。

wb:只写方式打开二进制文件,可以写入的时候去掉文本结束符。
fwrite返回的长度不等于要写的长度,那说明磁盘满了。

fclose

读写:
字符读写:
fputc fgetc
字符串读写:
fputs fgets

数据块读写:
fread 连续读写,文件内部的指针游标会跟随累加
fwrite 连续写也会累加

参数:new内存,结构体的地址。

格式化读写:
fscanf(fp,"%d%s", num, name)格式化读取,将从文件指针fp中读取的数据存入num,name中,然后格式化输出
fprintf


跳转计算访问索引:
fseek跳到指定的位置
ftell返回当前的长度

EOF是-1作为文本文件结束的标志,但是在二进制文件中不行,需要用到feof函数。

屏幕操作,对键盘和屏幕的读写:
printf输出到屏幕
gets从屏幕输入
getc
putchar显示读取的字符

*/

// 包头
struct PackageHeader
{
    int m_nCount; // 文件的个数
    int m_nLen; // 文件的长度
    PackageHeader()
    {
        m_nCount = 0;
        m_nLen = 0;
    }

    /*PackageHeader& operator =(const PackageHeader &b)
    {
        this->m_nCount = b.m_nCount;
        this->m_nLen = b.m_nLen;
        return (*this);
    }*/
};

// 每个文件的索引信息
struct FileList
{
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值