C++核心编程之通过类和对象的思想对文件进行操作

这篇具有很好参考价值的文章主要介绍了C++核心编程之通过类和对象的思想对文件进行操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

​​​​​​​一、文件操作

1. 文件类型分类:

2. 操作文件的三大类

二、文本文件

1.写文件

2.读文件

三、二进制文件

1.写二进制文件

2.读二进制文件


一、文件操作

程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放

通过文件可以将数据持久化

C++中对文件操作需要包含头文件< fstream >

1. 文件类型分类:

  1. 文本文件:  -文件以文本的ASCII码形式存储在计算机中
  2. 二进制文本: - 文件以文本的二进制形式存储在计算机中,用户一般不能直接读懂他们

2. 操作文件的三大类

  1. ofstream :写文加
  2. ifstream :读文件
  3. fstream:读写操作

二、文本文件

1.写文件

        1.包含头文件

                #include<fstream>

        2.创建流对象

                ofstream  ofs;

        3.打开文件

                ofs.open("文件路径",打开方式);

        4.写数据

                ofs<<"写入数据";

        5.关闭文件

                ofs.close();

文件打开方式

打开方式

功能

ios::in

为读文件而打开文件

ios::out

为写文件而打开文件

ios::ate

初始位置,文件尾

ios::app

以追加的方式写入

ios::trunc

如果文件存在,先删除,再创建一个新的

ios::binary

二进制方式写文件

注意:

文件打开方式可以配合使用,  利用  |  操作符(位或)

示例:

#include<iostream>

#include<fstream>

using namespace std;

int main()

{

    // 1. 包含头文件<fstream>

    // 2. 创建流对象   ofstream ofs;

    // 3. 打开文件 ofs.open("文件路径",打开方式)

    // 4. 写数据   ofs<<"写入数据"

    // 5. 关闭文件 ofs.close()

 

    ofstream ofs;

    ofs.open("E:/test.txt", ios::out); // 没有指定具体路径存放到当前项目的文件夹下

    ofs << "helo " << endl;

    ofs << "文件操作" << endl;

    ofs.close();

    return 0;

}

结果示例:

C++核心编程之通过类和对象的思想对文件进行操作,# C++核心编程,c++,cocoa,开发语言

总结:

  • 文件操作必须包含头文件fstheam
  • 读文件可以利用 ofstream ,或者fstream类
  • 打开文件时候需要指定操作文件的路径,以及打开方式
  • 利用<<可以向文件中写数据
  • 操作完毕,要关闭文件

2.读文件

        1.包含头文件

                #include<fstream>

        2.创建流对象

                ifstream  ifs;

        3.打开文件

                ifs.open("文件路径",打开方式);

        4.读数据

                四种方式读取

        5.关闭文件

                ifs.close();

示例:

#include<iostream>

#include<fstream>

using namespace std;

int main()

{

    // 1. 包含头文件<fstream>

    // 2. 创建流对象   ifstream ifs;

    // 3. 打开文件 ofs.open("文件路径",打开方式)

    // 4. 读数据   四种方式读取

    // 5. 关闭文件 ifs.close()

 

    ifstream ifs;

    ifs.open("E:/test.txt", ios::in);

    if( !ifs.is_open()){

         cout<<"文件打开失败"<<endl;

         //return;

    }

    // 第一种:字符数组

    char buf[1024]={0};

    while(ifs>>buf){

        cout<<buf<<endl;

    }

    // 第二种

    char buf1[1024]={0};

    // 获取一行
        
    while(ifs.getline(buf1,sizeof(buf1))){

        cout<<buf1<<endl;

    }

    // 第三种:字符串中

    string buf2;

    while(getline(ifs,buf2)){

        cout<<buf2<<endl;

    }

    // 第四种:一个一个读取没有一行一行读取快

    char c;// 判断是否读取到了文件的尾部

    while((c = ifs.get())!=EOF){ // end of file

        cout<<c;

    }

    ifs.close();

    return 0;

}

运行结果:

第一种:

C++核心编程之通过类和对象的思想对文件进行操作,# C++核心编程,c++,cocoa,开发语言

第二种:

C++核心编程之通过类和对象的思想对文件进行操作,# C++核心编程,c++,cocoa,开发语言

第三种:

C++核心编程之通过类和对象的思想对文件进行操作,# C++核心编程,c++,cocoa,开发语言

第四种:

C++核心编程之通过类和对象的思想对文件进行操作,# C++核心编程,c++,cocoa,开发语言

总结:

  • 读文件可以利用ifstream,或者fstream类
  • 利用is._open函数可以断文件是否打开成功
  • close关闭文件

 

三、二进制文件

1.写二进制文件

  • 打开方式要指定为ios::binary
  • 二进制方式写文件主要利用流对象调用成员函数write
  • 函数原型:ostream  &  write(const  char*  buffer,  int  len);
  • 参数:字符指针buffer指向内存中一段存储空间,len是读写得到字节数

示例:

#include<iostream>

#include<fstream>

#include<string>

using namespace std;

class person{

public:

    char Name[64];

    int Age;

};

int main()

{

    // 打开的方式要指定为 iOS::binary

    // 函数原型 ostream &write(const char *buffer,int len);

    // 1. 包含头文件

    // 2. 创建流对象

    ofstream ofs;

    // 3. 打开文件

    ofs.open("E:/text.txt",ios::out|ios::binary);

    // 4. 写文件

    person p ={"张三",18};

    ofs.write((const char *)&p,sizeof(p));

    // 5. 关闭文件

    ofs.close();
    
    return 0;

}

运行结果示例:

C++核心编程之通过类和对象的思想对文件进行操作,# C++核心编程,c++,cocoa,开发语言

2.读二进制文件

  • 二进制方式读文件主要利用流对象调用成员函数read
  • 函数原型:itream  &  read(char*  buffer,  int  len);
  • 参数:字符指针buffer指向内存中一段存储空间,len是读写的字节数

示例:

#include<iostream>

#include<fstream>

#include<string>

using namespace std;

class person{

public:

char Name[64];

int Age;

};

int main()

{

    // 打开的方式要指定为 iOS::binary

    // 函数原型 istream &read(const char *buffer,int len);

    // 1. 包含头文件

    // 2. 创建流对象

    ifstream ifs;

    // 3. 打开文件  判断文件是否读取成功

    ifs.open("E:/text.txt",ios::in|ios::binary);

    if(!ifs.is_open()){

        return 0;

    }

    // 4. 读文件

    person p ;

    ifs.read((char *)&p,sizeof(p));

 

    cout<<"姓名: "<<p.Name<<endl<<"年龄: "<<p.Age<<endl;

    // 5. 关闭文件

    ifs.close();

    return 0;

}

运行结果:

C++核心编程之通过类和对象的思想对文件进行操作,# C++核心编程,c++,cocoa,开发语言文章来源地址https://www.toymoban.com/news/detail-800283.html

到了这里,关于C++核心编程之通过类和对象的思想对文件进行操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【C++】C++核心编程(十一)文件操作

    【C++】C++核心编程(十一)文件操作

      程序运行时产生的数据都属于临时数据,程序一旦运行结束都会被释放,通过文件可以将数据持久化。    C++中对文件进行操作需要包含头文件 fstream   文件类型分为两种:     1、文本文件—文件以文本的ASCII码形式存储在计算机中;     2、二进制文件—

    2024年02月09日
    浏览(7)
  • C++核心高级编程 --- 5.文件操作

    5.文件操作 作用 :程序运行时产生的数据都是临时数据,程序运行结束后都会被释放,文件能将数据 持久化 。 对文件进行操作需要包含头文件 两种文件类型 : 文本文件:以文本ASCII码形式存储在计算机里 二进制文件:以文本二进制形式存储在计算机里 操作文件的三大类

    2024年04月09日
    浏览(5)
  • Java——面向对象编程思想

    如果有人问你,C和Java的区别是什么呢? 我想大部分人肯定脱口而出的是:C是面向过程的,Java是面向对象的。 那如何理解面向过程和面向对象呢? 首先,面向过程和面向对象都是编程思想。 ①面向过程,以C语言为代表,它是按解决一个问题的的流程或者先后步骤来编程的

    2024年02月11日
    浏览(9)
  • 【JavaSE】面向对象编程思想之继承

    【JavaSE】面向对象编程思想之继承

     【本节目标】 1. 继承 2. 组合 目录 1. 为什么需要继承 2. 继承概念 3. 继承的语法 4. 父类成员访问 4.1 子类中访问父类的成员变量 4.2 子类中访问父类的成员方法 5. super 6. 子类构造方法 7. super和this 8. 再谈初始化 9. protected 10. 继承方式 11. final 12 继承与

    2024年02月12日
    浏览(13)
  • 【C++】STL 算法概念和分类 ( STL 算法头文件 | STL 算法思想 - 数据与算法分离 | STL 算法 迭代器 | STL 算法 操作对象 | STL 算法分类 )

    标准模板库 STL 算法 都定义在 algorithm , numeric 和 functional 三个头文件中 ; 使用 STL 标准模板库 算法时 , 导入上述 3 个头文件 , 导入时根据需求导入即可 , 不必都导入 ; algorithm 头文件 是 3 个 STL 算法头文件中 包含算法最多的一个 , 包含常用的 : 比较算法、交换算法、查找算法

    2024年01月21日
    浏览(16)
  • 【JavaSE】面向对象编程思想之多态(图文详解)

    【JavaSE】面向对象编程思想之多态(图文详解)

    目录 1. 多态的概念 2. 多态实现条件 3. 重写 4. 向上转型和向下转型 4.1 向上转型 4.2 向下转型 5. 多态的优缺点 6. 避免在构造方法中调用重写的方法 多态的概念:通俗来说,就是多种形态, 具体点就是去完成某个行为,当不同的对象去完成时会产生出不同的状态。  总的来说

    2024年02月14日
    浏览(15)
  • 【编程实践】JVM内存管理的核心数据结构和算法思想&代码示例说明
  • <C++> 类和对象-面向对象

    <C++> 类和对象-面向对象

    C语言是 面向过程 的,关注的是过程,分析出求解问题的步骤, 通过函数调用逐步解决问题。 C++是基于 面向对象 的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函

    2024年02月14日
    浏览(8)
  • <C++> 类和对象(上)-面向对象

    <C++> 类和对象(上)-面向对象

    C语言是 面向过程 的,关注的是过程,分析出求解问题的步骤, 通过函数调用逐步解决问题。 C++是基于 面向对象 的,关注的是对象,将一件事情拆分成不同的对象,靠对象之间的交互完成。 C语言结构体中只能定义变量,在C++中,结构体内不仅可以定义变量,也可以定义函

    2024年02月11日
    浏览(9)
  • C++:类和对象(中)

    C++:类和对象(中)

    如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并不是,任何类在什么都不写时, 编译器会自动生成以下6个默认成员函数。 默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数 class Date {}; 对于Date类,可以通过 Init 公有方

    2024年02月03日
    浏览(12)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包