千家信息网

C++中文件的随机读写方法及其作用介绍

发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,这篇文章主要介绍"C++中文件的随机读写方法及其作用介绍",在日常操作中,相信很多人在C++中文件的随机读写方法及其作用介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2025年11月08日C++中文件的随机读写方法及其作用介绍

这篇文章主要介绍"C++中文件的随机读写方法及其作用介绍",在日常操作中,相信很多人在C++中文件的随机读写方法及其作用介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"C++中文件的随机读写方法及其作用介绍"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

目录
  • 概述

  • 随机读写

  • 函数

  • 例子

  • 指针流成员函数

  • 随机访问二进制数据

概述

文件的操作方式分为顺序读写和随机读写. 顺序读写指文件的指针只能从头移到尾巴. 随机读写指文件指针可以随意移动, 根据需要.

随机读写

文件指针: 在磁盘文件操作中有一个文件指针, 用来指明进行读写的位置.

函数

文件流提供了一些有关文件指针的成员函数:

成员函数作用
gcount()返回最后一次输入所读入的字节数
tellg()返回输入文件指针的当前位置
seekg (文件中的位置)将输入文件中指针移到指定的位置
seekg (位移量, 参照位置)参照位置为基础移动到指定的位置
tellp()返回输出文件指针当前的位置
seekp (文件中的位置)将输出文件中指针移到指定的位置
seekp (位移量, 参照位置)以参照位置为基础移动若干字节
  • g- 用于输入函数 (get), 例如 seekg 用于输出文件

  • p- 用于输出函数 (put), 例如 seekp 用于输出文件

  • 其他- 既可以输入又可输出的文件, 任意使者两组函数.

例子

从键盘输入 10 个整数, 并将其保存到数据文件 f1. dat 中, 再从文件中将数据读出来, 显示在屏幕上.

#include #include using namespace std;int main() {    int a[10], b[10];        // 打开文件    fstream iofile("temp.txt", ios::in | ios::out);    if(!iofile) {        cerr << "open error!" << endl;        exit(1);    }        // 写入文件    cout << "enter 10 integer numbers:\n";    for (int i = 0; i < 10; ++i) {        cin >> a[i];        iofile << a[i] << " ";    }        // 读取文件    cout << "The numbers have been writen to file." << endl;    cout << "Display the data by read from file:" << endl;    iofile.seekg(0, ios::beg);    for (int i = 0; i < 10; ++i) {        iofile >> b[i];        cout << b[i] << " ";    }    iofile.close();    return 0;}

输出结果:

enter 10 integer numbers:
1 2 3 4 5 6 7 8 9 10
The numbers have been writen to file.
Display the data by read from file:
1 2 3 4 5 6 7 8 9 10

指针流成员函数

文件中的位置和位移量为long型, 以字节为单位.
参照位置可以是下面三者之一:

  • ios::beg 文件开头 (默认)

  • ios::cur 指针当前的位置

  • ios::end 文件末尾

用法: 以 seekg (位移量, 参照位置) 为例:

  • file.seekg(3): 指针移动到第三个字符的位置

  • file.seekg(ios_base::beg): 指针移动到文件开头

  • file.seekg(-3, ios_base::cur): 向后移动三个字符

  • file.seekg(3, file.tellg()): 向后移动三个字符

  • file.seek(file. tellg() + 3): 向后移动三个字符

随机访问二进制数据

利用成员函数移动指针, 随机地访问二进制数据文件中任意一位置上的数据, 还可以修改文件中的内容.

学生数据处理:

#include #include #include "Student.h"using namespace std;int main() {    // 打开文件    fstream iofile("student.txt",ios::in|ios::out);    if(!iofile) {        cerr << "open error!" << endl;        exit(1);    }    // 向磁盘文件输出2个学生的数据    Student stud[2]{            {1, "Little White"},            {2, "Big White"}    };    for (int i = 0; i < 2; ++i) {        iofile.write((char *) &stud[i], sizeof(stud[i]));    }    // 读取学生数据,并显示    Student read[2];    for (int i = 0; i < 2; ++i) {        iofile.seekg(i*sizeof(stud[i]),ios::beg);        iofile.read((char *)&read[i],sizeof(read[0]));    }    // 修改第2个学生的数据后存回文件原位置    stud[1].setId(1012); //修改    stud[1].setName("Wu");    iofile.seekp(sizeof(stud[0]),ios::beg);    iofile.write((char *)&stud[1],sizeof(stud[2]));    iofile.seekg(0,ios::beg);    // 读入修改后的2个学生的数据并显示出来    for(int i=0; i<2; i++)    {        iofile.read((char *)&stud[i],sizeof(stud[i]));        stud[i].display();    }    iofile.close( );    return 0;}

输出结果:

id= 1
name= Little White
id= 1012
name= Wu

到此,关于"C++中文件的随机读写方法及其作用介绍"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

文件 位置 指针 数据 函数 移动 输出 输入 作用 方法 学生 成员 C++ 三个 字符 学习 二进制 字节 例子 基础 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 网络技术是个什么专业 我的世界服务器披风怎么装 简单数据库实例db 药渡数据库怎么申请账号 欧拉系统服务器怎么看身份鉴别 node部署到服务器 探途网络技术有限公司客服 国泰安数据库股权性质和国企划分 菏泽职业学院有网络技术吗 服务器链接地址 拉普拉斯网络技术游戏 宝山区标准软件开发哪家好 饥荒服务器如何暂停时间 滁州电商平台软件开发 数据库装其他盘 合肥哪的软件开发培训机构好 工信部java软件开发挂靠 邯郸营销软件开发多少钱 方舟50倍服务器配置 网络安全法主要规范 只有网络安全模式才能上网 建设网络安全监测预警能力 周口淮兴软件开发 网络技术开发的切入点 强网杯人工智能网络安全挑战赛 网络安全工程师2019前景 艾尔登法环连接服务器进不去 南宁用的打车软件开发 贷款管理服务器哪个好 在数据库技术中实体联系模型是
0