CentOS 里 C++ 文件怎么读写:从 <fstream> 示例到编译运行一次看懂

阿橙
阿橙
发布时间:2026-08-24 | 202人浏览过
原创

前言

在 CentOS 里写 C++ 程序时,文件读写看起来只是几行代码,但真正容易出错的地方往往是打开失败判断、读取方式选择和关闭时机这些基础细节。本文用一个可直接运行的示例,把 &lt;fstream&gt; 的常见用法、编译执行步骤和实际开发里该保留的习惯串起来讲清楚,方便你快速判断这套写法是否适合自己的文本文件处理场景。

在 CentOS 环境里写 C++ 程序时,文件读写通常是最早会碰到的基础能力之一。很多人知道要用 <fstream>,但真正上手时,常见问题往往集中在“文件怎么打开”“失败时怎么判断”“读完写完要不要手动关闭”这些细节上。下面就用一个最小可运行示例,把写入、读取、编译运行和关键注意点一次讲清楚。

用 <fstream> 完成最基础的文件读写

在 CentOS 里,C++ 的文本文件读写主要依赖标准库中的 <fstream>。下面这段代码同时演示了写入文件和读取文件两个过程,适合作为入门模板直接使用。

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

int main() {
    // 写入文件
    std::ofstream outFile("example.txt");
    if (!outFile.is_open()) {
        std::cerr << "无法打开文件进行写入" << std::endl;
        return 1;
    }
    outFile << "Hello, CentOS!" << std::endl;
    outFile << "这是一个简单的 C++ 文件读写示例。" << std::endl;
    outFile.close();

    // 读取文件
    std::ifstream inFile("example.txt");
    if (!inFile.is_open()) {
        std::cerr << "无法打开文件进行读取" << std::endl;
        return 1;
    }
    std::string line;
    while (std::getline(inFile, line)) {
        std::cout << line << std::endl;
    }
    inFile.close();

    return 0;
}

这段程序的逻辑很直接:先把两行文本写入 example.txt,再把这个文件按行读出来,并输出到终端。

在 CentOS 上编译并运行示例

如果你只是想先把流程跑通,可以按下面的顺序操作:

  1. 把代码保存为 file_io.cpp。
  2. 打开终端,切换到文件所在目录。
  3. 使用 g++ 编译程序:
g++ -o file_io file_io.cpp
  1. 编译完成后执行程序:
./file_io

正常情况下,终端会输出刚才写入文件的两行内容。这也说明两件事都已经成功完成:文件写入成功,文件读取也成功。

写入文件时要关注什么

std::ofstream 用于输出到文件。示例里这句代码:

std::ofstream outFile("example.txt");

会尝试打开 example.txt 进行写入;如果文件不存在,通常会自动创建。

先检查是否成功打开

很多入门示例会直接写内容,但实际使用时,先判断 is_open() 很重要:

if (!outFile.is_open())

一旦文件因为权限、路径或目录不存在等原因打不开,程序就能及时报错,而不是把问题拖到后面才发现。

写完后显式关闭文件

示例使用 << 把内容写入文件,再调用 close():

outFile.close();

虽然程序结束时析构函数也会关闭文件,但显式关闭依然是个值得保留的习惯。尤其是在稍大的程序里,尽早释放文件句柄、明确资源生命周期,通常比“等程序退出自动处理”更稳妥。

读取文件时为什么推荐逐行处理

读取部分使用的是 std::ifstream。打开文件后,程序同样先判断文件是否成功打开,然后通过 std::getline 一行一行读取内容:

展示文件写入和读取时需要检查的关键细节信息图
文件读写中的关键细节真正影响程序稳定性的,不是 API 会不会用。

while (std::getline(inFile, line))

这种写法的优点有两个:

  1. 逻辑直观,适合处理普通文本文件。
  2. 不需要一次把整个文件读进内存,对大文件更友好。

如果你的目标是读取日志、配置文件或按行格式存储的数据,这种方式通常就已经够用了。

这个示例适合拿来做什么起点

这套写法在 CentOS 上很常见,也基本符合 C++ 标准库一贯的跨平台使用方式。换到其他 Linux 发行版时,代码通常不需要改动,直接可以继续使用。

如果你已经掌握了这一步,后续再往下扩展时,方向通常包括:

  1. 处理二进制文件读写;
  2. 指定不同的打开模式;
  3. 进行随机读写;
  4. 补充更完整的错误处理。

从入门角度看,先把这份文本文件读写示例跑通,比一开始就上复杂封装更实际。只要理解了“打开文件、检查状态、执行读写、关闭文件”这条主线,后面的大多数文件操作都能在这个基础上展开。

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表