千家信息网

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

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"C++中文件的随机读写方法及其作用介绍",在日常操作中,相信很多人在C++中文件的随机读写方法及其作用介绍问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答
千家信息网最后更新 2026年11月01日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安全错误 数据库的锁怎样保障安全 广州大一互联网络科技有限公司 工业互联网科技新基建 安徽鑫晟辉互联网科技 腾讯科技 互联网女皇 上海万想互联网科技 互联网教育科技公司vipkid 福州新华互联网科技学校 知乎 北京华百购互联网科技有限公司 昭通云南众福互联网科技有限公司 常德市电业局互联网科技部 华夏互联网科技业 佛山市翊博互联网络科技有限公司 佛山市拉法互联网科技有限公司 长沙茂晟互联网科技有限公司 用友工业互联网科技发展 美国互联网科技公司 互联网科技快讯热点 上海创道互联网络科技有限公司 山东蛋芒互联网科技有限公司 互联网领先科技成果宣传视频 广州凡科互联网科技 须眉科技是互联网公司吗 移动互联网科技股 张召忠谈中国互联网科技 上海创道互联网络科技有限公司 广州燕处互联网科技有限公司 山东大美朱楼互联网科技有限公司 世界互联网科技成果奖 盐城市攀科互联网科技有限公司 优雇互联网科技有限公司
0