C++文件操作(1)

本文详细介绍了C++中如何使用文件流处理文本文件和二进制文件,涉及文本文件的写入、读取,以及二进制文件的写入和读取方法,包括使用ofstream、ifstream和fstream类的操作和注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


C++也有处理文件的能力,其功能实现依赖文件流。文件流是C++中用来处理文件输入输出的一种流类。文件流可以用于从文件中读取数据或将数据写入到文件中。C++中的文件流类包括ifstream(用于从文件中读取数据)、ofstream(用于向文件中写入数据)和fstream(用于同时读取和写入文件)。这些文件流类提供了一组成员函数,可以用来打开、关闭、读取和写入文件。使用文件流可以方便地进行文件操作,如读取文件内容、写入数据到文件中等。这里我们主要学习文件的处理方法,想要深度了解文件流的小伙伴可以在学完本节之后再补充相关知识。

1.文本的写入及读取

字符串文件是C++经常处理的一种文件类型,其依赖为i/ostream和fstream类。

文本文件写入

我们看一个向文件中写入内容的例子:

#include<stdio.h>

#include<iostream>
#include<fstream>

#include <string>
using std::string;
using namespace std;
int main()
{
   
    string filename="test.txt"; // 文件名
    ofstream mytest; // 使用ofstream创建文件输出流对象,名字自拟
    mytest.open(filename); // 打开文件
    // 向文件中写入数据
    mytest<<"这是一个测试\n"<<"我们尝试连续输入内容\n";
    mytest<<"继续测试";
    // 关闭文件
    mytest.close();
}

在这段代码中,filename定义了一个文件名,我们尝试使用文件流打开文件,当当前路径下存在文件时,这段代码会截断文件,即打开文件后删除文件内容,重新进行写入操作,当文件不存在时,会在当前路径下创建文件并写入内容。运行这段代码会在.cpp文件路径下产生一个.txt文件:
在这里插入图片描述
虽然操作成功了,但是这样的做法存在不足和风险,比如我们在打开或创建文件时应当给出文件的确切位置,不应该只让它生成在.cpp文件的路径下;在使用文件之前应当判断文件是否成功打开。
为了解决以上不足,我们先详细了解一下ofstream输出流。ofstream创建了文件输出流对象,而open函数可以带有两个参数,即文件及路径和打开方式。文件的绝对路径有以下写法:

R"(C:\data…\test.txt)" (C++11标准)
“C:\data\…\text.txt”
“C:/data/…/text.txt”

其次,文件的打开方式可以这样规定:

ios::out 截断文件内容打开文件,为参数默认值
ios::truck 截断文件内容,类似于ios::out
ios::app 在文件后添加内容

我们再来测试一下:

int main()
{
   
    ofstream mytest;
    mytest.open("E:\\c++\\class3start11\\test.txt",ios::app);
    // 使用ios::app 在文件后添加内容
    // 向文件中写入数据
    mytest<<"这是一个测试\n"<<"我们尝试连续输入内容\n";
    // 关闭文件
    mytest.close();
}

再打开文件其内容就变成了:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值