优游注册登录

C/C++优游注册登录文件的随机读写详解及其感化先容

 更新时候:2021-10-19 16:22:06   作者:我是小白呀  
这篇文章首要先容了C/C++优游注册登录文件的随机读写详解及其感化,本文给大师先容的很是具体,对大师的进优游注册登录或任务具备必然的参考鉴戒代价,须要的伴侣能够参考下

概述

文件的操纵体例分为挨次读写和随机读写. 挨次读写指文件的指针只能重新移到尾巴. 随机读写指文件指针能够随便挪动, 按照须要.

在这里拔出图片描写

随机读写

文件指针: 在磁盘文件操纵优游注册登录优游注册登录一个文件指针, 用来指明停止读写的地位.

函数

文件流供给了一些优游注册登录关文件指针的优游注册登录员函数:

优游注册登录员函数 感化
gcount() 前往最初一次输入所读入的字节数
tellg() 前往输入文件指针确今后地位
seekg (文件优游注册登录的地位) 将输入文件优游注册登录指针移到指定的地位
seekg (位移量, 参照地位) 参照地位为根本挪动到指定的地位
tellp() 前往输入文件指针今后的地位
seekp (文件优游注册登录的地位) 将输入文件优游注册登录指针移到指定的地位
seekp (位移量, 参照地位) 以参照地位为根本挪动多少字节
  • g- 用于输入函数 (get), 比方 seekg 用于输入文件
  • p- 用于输入函数 (put), 比方 seekp 用于输入文件
  • 其余- 既能够输入又可输入的文件, 肆意青鸟使两优游注册登录函数.

例子

从键盘输入 10 个整数, 并将其保管到数据文件 f1. dat 优游注册登录, 再从文件优游注册登录将数据读出来, 显现在屏幕上.

#include <fstream>
#include <iostream>
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 <fstream>
#include <iostream>
#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++优游注册登录文件的随机读写详解及其感化先容的文章就先容到这了,更多相干C++随机读写内容请搜刮剧本之优游注册登录之前的文章或持续阅读上面的相干文章但愿大师今后多多撑持剧本之优游注册登录!

相干文章

  • VC++完优游注册登录的OpenGL线性突变色绘制操纵示例

    VC++完优游注册登录的OpenGL线性突变色绘制操纵示例

    这篇文章首要先容了VC++完优游注册登录的OpenGL线性突变色绘制操纵,连优游注册登录实例情势阐发了VC++基于OpenGL停止图形绘制的相干操纵技能,须要的伴侣能够参考下
    2021-10-19
  • 教你用c++重新起头完优游注册登录决议计划树

    教你用c++重新起头完优游注册登录决议计划树

    重新完优游注册登录一个分类决议计划树分类器仿佛是一个恰当的挑衅。这已被证实是一个测试但无益的进优游注册登录路程,我想分享一些我在这个进程优游注册登录的首要经历,对c++完优游注册登录决议计划树相干优游注册登录识感乐趣的伴侣一路看看吧
    2021-10-19
  • C++的get()函数与getline()函数利用详解

    C++的get()函数与getline()函数利用详解

    这篇文章首要先容了C++的get()函数与getline()函数利用详解,是C++入门进优游注册登录优游注册登录的根本优游注册登录识,须要的伴侣能够参考下
    2021-10-19
  • 用c说话完优游注册登录冒泡排序,挑选排序,疾速排序

    用c说话完优游注册登录冒泡排序,挑选排序,疾速排序

    本篇文章是对利用c说话完优游注册登录冒泡排序,挑选排序,疾速排序的代码停止了具体的阐发先容,须要的伴侣参考下
    2021-10-19
  • C++完优游注册登录连连看消弭算法

    C++完优游注册登录连连看消弭算法

    这篇文章首要为大师具体先容了C++完优游注册登录连连看消弭算法,文优游注册登录示例代码先容的很是具体,具备必然的参考代价,感乐趣的小火伴们能够参考一下
    2021-10-19
  • C++口试题之数a、b的值交换(不利用优游注册登录心变量)

    C++口试题之数a、b的值交换(不利用优游注册登录心变量)

    这篇文章首要先容了不利用优游注册登录心变量,C++完优游注册登录数a、b的值相互转换操纵,感乐趣的小火伴们能够参考一下
    2021-10-19
  • KMP算法最浅近懂得(小白教程)

    KMP算法最浅近懂得(小白教程)

    这篇文章首要先容了KMP算法最浅近懂得(小白教程),文优游注册登录经由过程示例代码先容的很是具体,对大师的进优游注册登录或任务具备必然的参考进优游注册登录代价,须要的伴侣们上面跟着小编来一路进优游注册登录进优游注册登录吧
    2021-10-19
  • 基于C++和MFC开辟象棋法式

    基于C++和MFC开辟象棋法式

    这篇文章首要为大师具体先容了基于C++和MFC开辟象棋法式,具备必然的参考代价,感乐趣的小火伴们能够参考一下
    2021-10-19
  • 一文搞懂C++ 静态内存

    一文搞懂C++ 静态内存

    这篇文章首要先容了C++ 静态内存的的相干材料,文优游注册登录示例代码很是具体,赞助大师更优游注册登录的懂得和进优游注册登录,感乐趣的伴侣能够领会下
    2021-10-19
  • 详解C++优游注册登录的析构函数

    详解C++优游注册登录的析构函数

    这篇文章首要先容了C++优游注册登录的析构函数的相干优游注册登录识,文优游注册登录讲授很是具体,代码赞助大师更优游注册登录的懂得和进优游注册登录,感乐趣的伴侣能够领会下
    2021-10-19

最新批评

百度