C++入门教程 08

学习链接

八、文件操作

1. C++读写文件操作

C++中对于文件的操作,主要是用以下几个类来支持,它们分别是:

  • ofstream: 写操作(输出)的文件类 (由ostream引申而来)
  • ifstream: 读操作(输入)的文件类(由istream引申而来)
  • fstream: 可同时读写操作的文件类 (由iostream引申而来)

它们都需要包含头文件:

#include <fstream>

依旧像C语言那样,对文件的读写操作也是三个步骤,分别是:

  1. 打开文件
  2. 读写文件
  3. 关闭文件

不一样的是,C++中对文件的读写操作所用到的函数都在以上三个类中的方法,充分体现面向对象的设计思想。

2. C++如何打开文件

C++如何打开文件? 这里需要用到在fstream类中的成员函数open()实现打开文件的操作,open函数是istream、ostream、fstream的成员函数,它的原型如下:

void open(const char *filename, ios::openmode mode);
  • 第一个参数filename表示要打开的文件路径
  • 第二个参数mode表示打开文件的模式,有如下:
参数作用
ios::in为输入(读)而打开文件
ios::out为输出(写)而打开文件
ios::ate初始位置:文件尾
ios::app所有输出附加在文件末尾
ios::trunc如果文件已存在则先删除该文件
ios::binary二进制方式

除此以外,还可以用过‘|’或运算符将多个参数进行如何使用,如:

ofstream out; 
out.open("dotcpp.txt", ios::out|ios::binary)  //以二进制模式打开,进行写数据

3. C++读文件操作

C++的输入输出用到了iostream头文件,这个头文件名字意思就是io流,现在学习的文件读写,其实也是流,叫做文件流,因此他的头文件需要包含fstream,它定义了三个类,负责文件的读、写、读写操作,分别如下:

类型意义
ofstream(out) 表示输出文件流,用于创建文件并向文件写入信息。
ifstream(in)表示输入文件流,用于从文件读取信息。
fstream(file)表示文件流,且同时具有 ofstream 和 ifstream 两种功能,这意味着它可以创建文件,向文件写入信息,从文件读取信息。

如果我们想读一个文件的内容,那么就可以使用ifstream或fstream类型即可:

#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
    char data[100];
    // 以读模式打开文件(对于系统而言是读)
    ifstream file;
    file.open("F:\\testcpp.txt");
    
    file >> data;
    cout<<data;

    // 关闭打开的文件
    file.close();

    return 0;
}

输出结果image-20211023133901594

注意,对于C/C++而言,它可以打开读写的文件并非只能是.txt文件,事实上任何后缀文件都可以打开、读写、关闭操作。

4. C++写文件操作

接上篇,对于要用C++进行写文件,则可以用ofsteam或fstream类型,依次经过打开、写数据、关闭三个步骤完成。

#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
    char data[100] = "1234567890";
    // 以写模式打开文件(从系统的角度来看是写入)
    ofstream file;
    file.open("F:\\testcpp.txt");
    
    file << data;
    cout<<data;

    // 关闭打开的文件
    file.close();

    return 0;
}

输出结果:image-20211023134446600

对于即便F盘下不存在testcpp.txt这个文件的情况下,运行此程序仍然会自动新建并向其中写入data的数据

5. C++如何关闭文件

在结束相关操作之后,只需要在最后调用close成员函数即可,即会断开文件与程序的关联,结束操作。

该close函数是ifstream、ofstream、fstream的成员函数,在使用时用打开的文件对象通过.直接调用即可。

#include <iostream>
#include <fstream>
using namespace std;
int main ()
{
   char data[100] = "1234567890";
   // 以写模式打开文件(从系统的角度来看是写入)
   ofstream file;
   file.open("F:\\testcpp.txt");
   
   file << data;
   cout<<data;

   // 调用close函数,关闭打开的文件
   file.close();

   return 0;
}

注意,在实际进行文件操作的过程中,对于打开的文件,要及时调用 close() 方法将其关闭,否则很可能会导致读写文件失败。

见:http://c.biancheng.net/view/7615.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ClimberCoding

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值