商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 编程开发 > Ubuntu C++怎样进行文件操作

Ubuntu C++怎样进行文件操作

  发布于2026-06-29 阅读(0)

扫一扫,手机访问

在Ubuntu环境下用C++操作文件,几乎是每个开发者都会遇到的需求。标准库中的头文件提供了足够简洁的接口,配合C++17引入的,日常的读写、追加、检查存在等操作都能轻松搞定。下面直接上代码,一边跑一边讲,这样更实在。

Ubuntu C++怎样进行文件操作

打开文件

首先得把文件“请”进来。用std::ifstream创建输入流对象,传一个文件名给它就行。记得检查是否真的打开了——如果文件不存在或者权限不够,流对象会抛出一个失败状态,捕获它总没错。

#include 
#include 

int main() {
    std::ifstream inputFile("example.txt");
    if (!inputFile.is_open()) {
        std::cerr << "Unable to open file for reading!" << std::endl;
        return 1;
    }
    // 文件操作代码...
    inputFile.close();
    return 0;
}

写入文件

写入就反过来,用std::ofstream。默认模式是覆盖写,如果文件已经存在,内容会被清空。这里演示一行“Hello, World!”,用流操作符直接插入,方便得很。

#include 
#include 

int main() {
    std::ofstream outputFile("output.txt");
    if (!outputFile.is_open()) {
        std::cerr << "Unable to open file for writing!" << std::endl;
        return 1;
    }
    outputFile << "Hello, World!" << std::endl;
    outputFile.close();
    return 0;
}

追加内容到文件

不想覆盖原内容?那就在打开时加上std::ios::app标记。这样写入的内容会从文件末尾开始追加,原始数据纹丝不动。

#include 
#include 

int main() {
    std::ofstream outputFile("output.txt", std::ios::app);
    if (!outputFile.is_open()) {
        std::cerr << "Unable to open file for appending!" << std::endl;
        return 1;
    }
    outputFile << "Appended text." << std::endl;
    outputFile.close();
    return 0;
}

读取文件

读取最常用的方式就是逐行处理。用std::getline循环取行,直到文件结束。每行拿到后可以输出到控制台,也可以做进一步解析。注意文件读取结束后流对象会自动进入失败状态,循环会自然退出。

#include 
#include 
#include 

int main() {
    std::ifstream inputFile("example.txt");
    if (!inputFile.is_open()) {
        std::cerr << "Unable to open file for reading!" << std::endl;
        return 1;
    }
    std::string line;
    while (std::getline(inputFile, line)) {
        std::cout << line << std::endl;
    }
    inputFile.close();
    return 0;
}

检查文件是否存在

有时你需要在操作前先确认文件是否真实存在。C++17的库提供了fs::exists方法,简单高效。注意,编译时记得带上-std=c++17标志。

#include 
#include 

namespace fs = std::filesystem;

int main() {
    if (fs::exists("example.txt")) {
        std::cout << "File exists." << std::endl;
    } else {
        std::cout << "File does not exist." << std::endl;
    }
    return 0;
}

使用g++编译时,像这样启用C++17标准:

g++ -std=c++17 your_program.cpp -o your_program

以上覆盖了Ubuntu上C++文件操作最核心的几个场景。当然,实际项目中可能还需要处理二进制文件、随机读写、错误码细化等高级特性,但掌握了这些基础逻辑,你已经能应对大部分日常需求了。

本文转载于:https://www.yisu.com/ask/77846617.html 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注