0

0

c++如何处理文件输入输出_c++ fstream文件流操作教程

下次还敢

下次还敢

发布时间:2025-11-29 16:25:02

|

711人浏览过

|

来源于php中文网

原创

C++中通过fstream库实现文件读写,包含ifstream(读)、ofstream(写)和fstream(读写)三个类。使用前需包含头文件,并通过is_open()检查文件是否成功打开。ofstream默认以覆盖模式写入文件,若需追加内容应使用std::ios::app模式;ifstream可逐行读取文件内容,推荐使用getline()函数读取整行文本;fstream支持同时读写,可通过seekg()和seekp()控制读写位置,常用模式包括in、out、app、ate和binary。操作完成后应调用close()关闭文件流,避免资源泄漏。实际编程中建议结合错误处理机制确保程序健壮性。

c++如何处理文件输入输出_c++ fstream文件流操作教程

C++ 中处理文件输入输出主要通过 fstream 库来实现,它提供了三个核心类:ifstream(用于读取文件)、ofstream(用于写入文件)和 fstream(可同时读写)。这些类都定义在 头文件中。下面详细介绍如何使用它们进行常见的文件操作。

包含头文件与基本概念

要使用文件流,必须包含 头文件。同时根据需要引入 iostream> 和 等辅助头文件。

#include
#include
#include

三大文件流类的作用:

  • ofstream:从程序向文件写数据(output file stream)
  • ifstream:从文件读取数据到程序(input file stream)
  • fstream:支持读写操作,更灵活

写入文件(ofstream)

使用 ofstream 可以轻松创建或覆盖一个文本文件并写入内容。

立即学习C++免费学习笔记(深入)”;

std::ofstream outFile("example.txt");
if (outFile.is_open()) {
  outFile   outFile   outFile.close();
} else {
  std::cout }

说明:

  • 构造函数传入文件名,默认为覆盖模式(trunc)
  • 可用 .is_open() 判断是否成功打开
  • 写完后建议调用 .close() 避免资源泄漏

若想追加内容而不是覆盖,需指定模式:

来福FM
来福FM

来福 - 你的私人AI电台

下载
std::ofstream outFile("example.txt", std::ios::app);

读取文件(ifstream)

使用 ifstream 打开已有文件并逐行或逐词读取内容。

std::ifstream inFile("example.txt");
std::string line;
if (inFile.is_open()) {
  while (getline(inFile, line)) {
    std::cout   }
  inFile.close();
} else {
  std::cout }

注意:

  • getline(inFile, line) 按行读取,保留空格
  • 若用 >> 操作符,则以空白字符分割,不适合含空格的整行文本

读写同一文件(fstream)

当需要对同一个文件进行读写操作时,使用 fstream 更合适。

std::fstream file("data.txt", std::ios::in | std::ios::out | std::ios::app);
// 或先写后读:
std::fstream file("data.txt");
file.open("data.txt", std::ios::in | std::ios::out);
if (file.is_open()) {
  file   file.seekg(0); // 回到文件开头读取
  std::string line;
  while (getline(file, line)) {
    std::cout   }
  file.close();
}

关键点:

  • seekg() 用于设置读取位置(get pointer)
  • seekp() 设置写入位置(put pointer)
  • 组合模式用位或(|)连接,如 in | out

常见打开模式:

  • std::ios::in - 读取
  • std::ios::out - 写入(默认会清空内容)
  • std::ios::app - 追加
  • std::ios::ate - 打开时定位到末尾
  • std::ios::binary - 二进制模式

基本上就这些常用操作。掌握 ifstream、ofstream 和 fstream 的基本用法后,就能完成大多数文本文件处理任务。实际开发中记得始终检查文件是否成功打开,并及时关闭文件流。对于复杂需求,还可结合异常处理(exceptions)增强健壮性。

相关专题

更多
string转int
string转int

在编程中,我们经常会遇到需要将字符串(str)转换为整数(int)的情况。这可能是因为我们需要对字符串进行数值计算,或者需要将用户输入的字符串转换为整数进行处理。php中文网给大家带来了相关的教程以及文章,欢迎大家前来学习阅读。

315

2023.08.02

if什么意思
if什么意思

if的意思是“如果”的条件。它是一个用于引导条件语句的关键词,用于根据特定条件的真假情况来执行不同的代码块。本专题提供if什么意思的相关文章,供大家免费阅读。

736

2023.08.22

while的用法
while的用法

while的用法是“while 条件: 代码块”,条件是一个表达式,当条件为真时,执行代码块,然后再次判断条件是否为真,如果为真则继续执行代码块,直到条件为假为止。本专题为大家提供while相关的文章、下载、课程内容,供大家免费下载体验。

85

2023.09.25

点击input框没有光标怎么办
点击input框没有光标怎么办

点击input框没有光标的解决办法:1、确认输入框焦点;2、清除浏览器缓存;3、更新浏览器;4、使用JavaScript;5、检查硬件设备;6、检查输入框属性;7、调试JavaScript代码;8、检查页面其他元素;9、考虑浏览器兼容性。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

180

2023.11.24

Java 桌面应用开发(JavaFX 实战)
Java 桌面应用开发(JavaFX 实战)

本专题系统讲解 Java 在桌面应用开发领域的实战应用,重点围绕 JavaFX 框架,涵盖界面布局、控件使用、事件处理、FXML、样式美化(CSS)、多线程与UI响应优化,以及桌面应用的打包与发布。通过完整示例项目,帮助学习者掌握 使用 Java 构建现代化、跨平台桌面应用程序的核心能力。

34

2026.01.14

php与html混编教程大全
php与html混编教程大全

本专题整合了php和html混编相关教程,阅读专题下面的文章了解更多详细内容。

14

2026.01.13

PHP 高性能
PHP 高性能

本专题整合了PHP高性能相关教程大全,阅读专题下面的文章了解更多详细内容。

33

2026.01.13

MySQL数据库报错常见问题及解决方法大全
MySQL数据库报错常见问题及解决方法大全

本专题整合了MySQL数据库报错常见问题及解决方法,阅读专题下面的文章了解更多详细内容。

18

2026.01.13

PHP 文件上传
PHP 文件上传

本专题整合了PHP实现文件上传相关教程,阅读专题下面的文章了解更多详细内容。

12

2026.01.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
C# 教程
C# 教程

共94课时 | 6.7万人学习

C 教程
C 教程

共75课时 | 4万人学习

C++教程
C++教程

共115课时 | 12.2万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号