返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C/C++中二进制文件&顺序读写详解及其作用介绍
  • 674
分享到

C/C++中二进制文件&顺序读写详解及其作用介绍

2024-04-02 19:04:59 674人浏览 薄情痞子
摘要

目录概述二进制 vs ASCII二进制写入ASCII 写入read 和 write 读写二进制文件案例一案例二概述 二进制文件不同于文本文件, 它可以用于任何类型的文件 (包括文本文

概述

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

在这里插入图片描述

二进制 vs ASCII

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

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

二进制写入


#include <fstream>
#include <iOStream>
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 <fstream>
#include <iostream>
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 <fstream>
#include <iostream>
#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 <fstream>
#include <iostream>
#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++中二进制文件&顺序读写详解及其作用介绍的文章就介绍到这了,更多相关c++二进制&顺序读写内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: C/C++中二进制文件&顺序读写详解及其作用介绍

本文链接: https://lsjlt.com/news/134471.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C/C++中二进制文件&顺序读写详解及其作用介绍
    目录概述二进制 vs ASCII二进制写入ASCII 写入read 和 write 读写二进制文件案例一案例二概述 二进制文件不同于文本文件, 它可以用于任何类型的文件 (包括文本文...
    99+
    2024-04-02
  • C/C++中文件的随机读写详解及其作用介绍
    目录概述随机读写函数例子指针流成员函数随机访问二进制数据概述 文件的操作方式分为顺序读写和随机读写. 顺序读写指文件的指针只能从头移到尾巴. 随机读写指文件指针可以随意移动, 根据需...
    99+
    2024-04-02
  • C/C++中I/O进阶详解及其作用介绍
    目录概述I/O 类库I/O 中的重载流对象标准输入流cin 流对象案例get 函数getline 函数eof 函数cout 流对象cerr 流对象clog 流对象概述 C++ 的输入...
    99+
    2024-04-02
  • C++ 二进制文件读写方式及示例详解
    目录C++ 二进制文件读写一、二进制文件的读写方式二、C++二进制文件读写示例写入二进制文件:读取二进制文件:总结:C++ 二进制文件读写 C++语言提供了使用二进制文件进行数据处理...
    99+
    2023-05-17
    C++ 二进制文件读写 C++ 文件读写
  • C/C++中组合详解及其作用介绍
    目录概述案例总结概述 组合 (Composition) 指在一个类中另一类的对象作为数据成员. 案例 在平面上两点连成一条直线, 求直线的长度和直线中点的坐标. 要求: ...
    99+
    2024-04-02
  • C/C++中多态性详解及其作用介绍
    目录概述静态多态函数重载运算符重载动态多态非动态动态概述 多态性 (polymorphism) 是面向对象程序设计的一个重要特征. 利用多态性扩展设计和实现一个易于扩展的系统. C...
    99+
    2024-04-02
  • C/C++中虚基类详解及其作用介绍
    目录概述多重继承的问题虚基类初始化例子总结概述 虚基类 (virtual base class) 是用关键字 virtual 声明继承的父类. 多重继承的问题 N 类: cla...
    99+
    2024-04-02
  • C/C++中虚函数详解及其作用介绍
    目录概述使用方法关联静态关联动态关联案例1未使用虚函数使用虚拟类案例2总结概述 虚函数 (virtual function) 指可以被子类继承和覆盖的函数. 使用方法 基类声明成员...
    99+
    2024-04-02
  • C/C++中抽象类详解及其作用介绍
    目录概述抽象类 vs 具体类案例抽象类的作用总结概述 抽象类 (abstract class), 是一些不用来定义对象, 而只作为基类被继承的类. 由于抽象类常用作基类, 所以通常称...
    99+
    2024-04-02
  • C/C++中多重继承详解及其作用介绍
    目录概述优缺点优点缺点声明多重继承的方法格式例子二义性两个基类有同名成员基类和派生类有同名成员两个基类从同一个基类派生概述 多重继承 (multiple inheritance): ...
    99+
    2024-04-02
  • C/C++中栈(stack)&堆(heap)详解及其作用介绍
    目录概述程序运行中的栈和堆堆和栈的差异申请方式和回收方式申请后系统的响应申请效率比较申请大小的限制堆和栈中的存储内容概述 栈 (stack) 是为执行线程流出的内存空间. 堆 (he...
    99+
    2024-04-02
  • C/C++中异常处理详解及其作用介绍
    目录概述异常处理异常处理机制函数声明指定异常练习案例一案例二概述 作为一名专业写 Bug, 编程一天改 bug 一周的程序媛. 学会异常处理是非常重要的. 我们不仅要考虑没有错误的理...
    99+
    2024-04-02
  • C/C++中字符串流详解及其作用介绍
    目录概述字符串流理解字符串流输出字符串对象输入字符串流对象输入输出字符串流对象案例一案例二字符数组 vs 文件总结概述 文件流类和字符串流类都是 ostream, istream 和...
    99+
    2024-04-02
  • C++中继承(inheritance)详解及其作用介绍
    概述 面向对象程序设计中最重要的一个概念是继承 (inheritance). 继承允许我们依据另一个类来定义一个类, 这使得创建和维护一个应用程序变得更统一. 这样做也达到了重用代码...
    99+
    2024-04-02
  • C++中模板(Template)详解及其作用介绍
    目录概述函数模板类模板模板类外定义成员函数类库模板抽象和实例概述 模板可以帮助我们提高代码的可用性, 可以帮助我们减少开发的代码量和工作量. 函数模板 函数模板 (Function...
    99+
    2024-04-02
  • C++中友元的详解及其作用介绍
    目录概述友元普通的友元函数友元成员函数友元类总结概述 类的友元函数 (friend) 是定义在类外部, 但是有权限访问类的所有私有 (private) 成员和保护 (protecte...
    99+
    2024-04-02
  • C++中指针的详解及其作用介绍
    目录概述指向对象的指针指向对象数据成员的指针this 指针this 指针的作用this 指针的实现概述 指针 (pointer) 是一个变量, 其指为另一个变量的地址. 即内存位置的...
    99+
    2024-04-02
  • C++读写(CSV,Yaml,二进制)文件的方法详解
    目录介绍1.读写txt文件2.C++读写CSV文件2.1 写入CSV2.2 读取CSV文件(1)2.3 读取CSV文件(2)2.4 用c++读写二进制文件(1)2.5 用c++读写二...
    99+
    2024-04-02
  • C/C++中命名空间(namespace)详解及其作用介绍
    目录概述命名空间命名空间的作用自定义命名空间命名空间成员的方法案例概述 命名空间 (namespace) 可以帮助我们区分不同库中相同名称的函数, 类, 变量等. 使用了命名空间即定...
    99+
    2024-04-02
  • C++模板Template详解及其作用介绍
    目录1. 模板2. 函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板原理2.4 函数模板的实例化2.5 模板参数的匹配原则2.6声明定义分离3. 类模板3.1 类模板...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作