首页 > 后端开发 > C++ > 正文

C++如何读取文件_C++使用fstream进行文本文件读写操作详解

尼克
发布: 2025-12-14 13:08:04
原创
237人浏览过
在C++中,使用fstream库中的ifstream、ofstream和fstream类进行文件读写操作,需包含头文件;2. ifstream用于读取文件,ofstream用于写入文件,fstream支持同时读写;3. 可通过构造函数或open()方法打开文件,并用is_open()检查状态;4. 写入文件时默认覆盖原内容,读取时可使用>>操作符按格式提取数据,但遇空格会中断。

c++如何读取文件_c++使用fstream进行文本文件读写操作详解

在C++中,读取和写入文本文件最常用的方式是使用标准库中的fstream。它提供了三个主要的类:ifstream(输入文件流)、ofstream(输出文件流)和fstream(输入输出文件流),分别用于读取、写入以及同时读写文件。下面详细介绍如何使用这些类进行常见的文件操作。

包含头文件与基本概念

要使用文件流,必须包含<fstream></fstream>头文件。同时,<iostream></iostream><string></string>也常被用到:

#include <fstream>
#include <iostream>
#include <string>
登录后复制

关键类说明:

  • ifstream:从文件读取数据,继承自istream
  • ofstream:向文件写入数据,继承自ostream
  • fstream:支持同时读写文件,继承自iostream

打开文件并检查状态

可以使用构造函数或open()方法打开文件。建议每次打开后检查是否成功。

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

std::ifstream file("example.txt");
if (!file.is_open()) {
    std::cerr << "无法打开文件!" << std::endl;
    return -1;
}
登录后复制

关闭文件使用close()

file.close();
登录后复制

逐行读取文本文件

使用std::getline()可以按行读取内容,适用于处理每行为一条记录的文本文件。

std::ifstream file("data.txt");
std::string line;

while (std::getline(file, line)) {
    std::cout << line << std::endl;
}
登录后复制

这种方法能正确读取包含空格的整行内容,不会被空格截断。

按单词或字段读取

如果文件内容以空格分隔,可以直接使用操作符提取数据:

std::ifstream file("input.txt");
int a;
double b;
std::string name;

file >> a >> b >> name;
登录后复制

这种方式适合格式固定的配置文件或数据表,但遇到空格会中断读取。

写入文本文件

使用ofstream可轻松写入文件,默认会覆盖原内容:

std::ofstream outFile("output.txt");
outFile << "Hello, World!" << std::endl;
outFile << 123 << " " << 45.6 << std::endl;
outFile.close();
登录后复制

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

std::ofstream outFile("output.txt", std::ios::app);
登录后复制

常见文件打开模式

open()函数第二个参数可指定打开方式:

  • std::ios::in:只读(默认 ifstream)
  • std::ios::out:只写(默认 ofstream)
  • std::ios::app:追加写入
  • std::ios::ate:打开后定位到末尾
  • std::ios::trunc:打开时清空文件(默认行为)

多个模式可用|组合:

file.open("log.txt", std::ios::out | std::ios::app);
登录后复制

完整示例:读写学生信息

假设有一个students.txt文件,每行包含姓名和成绩:

ZhangSan 89.5
LiSi 92.0
WangWu 78.5
登录后复制

读取并显示平均分的代码:

#include <fstream>
#include <iostream>
#include <string>

int main() {
    std::ifstream file("students.txt");
    std::string name;
    double score, total = 0;
    int count = 0;

    while (file >> name >> score) {
        total += score;
        ++count;
        std::cout << name << ": " << score << std::endl;
    }

    if (count > 0) {
        std::cout << "平均分: " << total / count << std::endl;
    }

    file.close();
    return 0;
}
登录后复制

基本上就这些。掌握fstream后,处理配置文件、日志、数据导入导出等任务都会变得简单。注意及时关闭文件、检查打开状态,避免运行时错误。不复杂但容易忽略的是路径问题——确保程序运行目录下存在目标文件,或使用绝对路径。

以上就是C++如何读取文件_C++使用fstream进行文本文件读写操作详解的详细内容,更多请关注php中文网其它相关文章!

最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

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