千家信息网

C/C++中二进制文件和顺序读写有什么用

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章主要介绍C/C++中二进制文件和顺序读写有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!概述二进制文件不同于文本文件, 它可以用于任何类型的文件 (包括文本文件)
千家信息网最后更新 2025年02月23日C/C++中二进制文件和顺序读写有什么用

这篇文章主要介绍C/C++中二进制文件和顺序读写有什么用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

概述

二进制文件不同于文本文件, 它可以用于任何类型的文件 (包括文本文件).

二进制 vs ASCII

对于数值数据, ASCII 形式与二进制形式不同. ASCII 文件直观, 便于阅读, 但一般占存储空间较多, 而且需要花时间转换. 二进制文件是计算机的内部形式, 节省空间且不需要转换, 但不能直观显示.

对于字符信息, 在内存中是以 ASCII 代码形式存放, 无论用 ASCII 文件输出还是用二进制文件输出, 形式是一样的.

二进制写入

#include #include using namespace std;int main() {    int x = 12345;    ofstream outfile("binary.txt", ios::binary);    outfile.write((char*)&x, 2);  // 写入    outfile.close();  // 释放    return 0;}

输出结果:

ASCII 写入

将 int x = 12345 写入文件.

#include #include using namespace std;int main() {    int x = 12345;    ofstream outfile("ASCII.txt");        outfile << x << endl;  // 写入    outfile.close();  // 释放    return 0;}

输出结果:

read 和 write 读写二进制文件

打开方式:

ofstream a("file1.dat", ios::out | ios::binary);ifstream b("file2.dat",ios::in | ios::binary);

文件读写方式:

istream& read(char *buffer,int len);ostream& write(const char * buffer,int len);
  • char *buffer 指向内存中一段存储空间

  • int len 是读写的字节数

例子:

将 p1 指向的空间中 50 个字节存入文件对象 a:

a.write(p1,50)

从文件对象 b 读出 30 个字节, 存址指向空间:

b.read(p2,30)

案例一

将数据以二进制的形式存放在磁盘中.

#include #include #include "Student.h"using namespace std;int main() {    Student stud[2] = {            {01, "Little White"},            {01, "Big White"}    };    ofstream outfile("student.dat", ios::binary);    if(!outfile){        cerr << "open error"  << endl;        exit(1);  // 退出程序    }    for (int i = 0; i < 2; ++i) {        outfile.write((char*)&stud[i], sizeof(stud[i]));    }    cout << "任务完成, 请查看文件" << endl;    outfile.close();    return 0;}

案例二

将二进制文件中的数据读入内存.

#include #include #include "Student.h"using namespace std;int main() {    Student stud[2];    ifstream infile("student.dat", ios::binary);    if(!infile){        cerr << "open error"  << endl;        exit(1);  // 退出程序    }    // 读取数据    for (int i = 0; i < 2; ++i) {        infile.read((char*)&stud[i], sizeof(stud[i]));    }    infile.close();    // 显示数据    for (int i = 0; i < 2; ++i) {        stud[i].display();    }    return 0;}

以上是"C/C++中二进制文件和顺序读写有什么用"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

文件 二进制 形式 数据 空间 输出 内存 字节 指向 顺序 直观 内容 对象 文本 方式 案例 程序 篇文章 结果 存储 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 清华大学网络安全专业考研 丝路传说哪个服务器好 苹果手机反诈数据库开启不了 山西网络安全非标机箱上哪找 学校网络安全大会主持词 杭州专业软件开发外包 爱采购软件开发选择什么类目 ios软件开发建设 华为软件开发技术面试难吗 偏袒小说软件开发 es数据库的类型 xp 磁盘管理服务器不可用 美亚柏科网络安全主要涉及哪些 服务器安全维护公司电话 2017年网络安全披露法 廊坊软件开发公司有哪些 保证网络安全技术措施 泗阳软件开发商在线咨询 打开服务器运行的命令 网络安全英语自我介绍 linux服务器修改用户的组 网络安全受到监控怎么改回来 网络安全从我做起的提纲 财政局 贯彻 网络安全法 郑州中学开展网络安全教育讲座 服务器里打开ie让添加安全 网络安全与维护pdf 学习计算机网络安全好就业吗 紫小晨没有网络安全吗 华为海思eda软件开发
0