
Linux系统下,C++文件操作主要通过标准库中的文件流(fstream)或C语言的函数(如fopen, fclose, fread, fwrite)实现。本文将分别介绍这两种方法。
方法一:使用C++文件流(fstream)
fstream类位于<fstream></fstream>头文件中,提供面向对象的、更易于使用的文件操作方式。
#include <iostream>
#include <fstream>
#include <string>
int main() {
// 打开文件进行读取
std::ifstream inputFile("example.txt");
if (!inputFile.is_open()) {
std::cerr << "无法打开输入文件!" << std::endl;
return 1; // 返回错误码
}
// 读取文件内容
std::string line;
while (std::getline(inputFile, line)) {
std::cout << line << std::endl;
}
inputFile.close();
// 打开文件进行写入
std::ofstream outputFile("output.txt");
if (!outputFile.is_open()) {
std::cerr << "无法打开输出文件!" << std::endl;
return 1;
}
// 写入数据
outputFile << "Hello, World from C++!" << std::endl;
outputFile.close();
return 0;
}
方法二:使用C语言文件操作函数
立即学习“C++免费学习笔记(深入)”;
C语言的文件操作函数定义在<cstdio></cstdio>头文件中,功能更底层,需要手动管理文件指针。
#include <cstdio>
#include <cstdlib>
int main() {
// 打开文件进行读取
FILE *inputFile = fopen("example.txt", "r");
if (inputFile == nullptr) {
perror("无法打开输入文件");
return EXIT_FAILURE;
}
// 读取文件内容
char buffer[256];
while (fgets(buffer, sizeof(buffer), inputFile) != nullptr) {
printf("%s", buffer);
}
fclose(inputFile);
// 打开文件进行写入
FILE *outputFile = fopen("output.txt", "w");
if (outputFile == nullptr) {
perror("无法打开输出文件");
return EXIT_FAILURE;
}
// 写入数据
fprintf(outputFile, "Hello, World from C!\n");
fclose(outputFile);
return EXIT_SUCCESS;
}
两种方法都能实现文件操作,但fstream更符合C++的编程风格,推荐优先使用。 C语言方法在需要精细控制文件操作细节时可能更灵活。










