Ubuntu C++怎样进行文件操作
在Ubuntu操作系统环境下,利用C++标准库头文件、及C++17特性高效实现文件读写、追加与存在检查。常用方法为:通过std::ifstream创建输入流并验证文件打开状态,使用std::filesystem::exists判断文件存在性,std::ofstream配合std::ios::app实现追加写入,代码简洁且跨平台。
在Ubuntu环境下用C++操作文件,几乎是每个开发者都会遇到的需求。标准库中的头文件提供了足够简洁的接口,配合C++17引入的,日常的读写、追加、检查存在等操作都能轻松搞定。下面直接上代码,一边跑一边讲,这样更实在。

打开文件
首先得把文件“请”进来。用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++文件操作最核心的几个场景。当然,实际项目中可能还需要处理二进制文件、随机读写、错误码细化等高级特性,但掌握了这些基础逻辑,你已经能应对大部分日常需求了。
IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。
JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。
JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。
JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,
PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,
PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,













