C++如何读写文件_C++中使用fstream库进行文本文件输入输出

答案是使用fstream库中的ofstream、ifstream和fstream类操作文本文件。包含头文件后,用ofstream创建或写入文件,默认覆盖内容;若需追加,应使用ios::app模式打开文件。

c++如何读写文件_c++中使用fstream库进行文本文件输入输出

在C++中,读写文本文件最常用的方法是使用标准库中的 fstream。它提供了三个主要的类:ifstream(输入文件流)、ofstream(输出文件流)和fstream(文件流,支持读写)。这些类都定义在 头文件中。

包含头文件并打开文件

要使用文件操作功能,必须先包含 头文件。然后根据需求选择合适的类来打开文件。

例如,打开一个文本文件进行写入:

#include <fstream>
#include <iostream>
using namespace std;
<p>int main() {
ofstream outFile("example.txt");
if (!outFile) {
cout << "无法打开文件用于写入!" << endl;
return 1;
}
outFile << "Hello, C++ File I/O!" << endl;
outFile.close();
return 0;
}</p>

上面代码创建了一个名为 example.txt 的文件,并写入一行文本。如果文件已存在,内容将被覆盖。若想追加内容,需以追加模式打开。

以不同模式打开文件

ofstream 默认以覆盖模式(trunc)打开文件。如果希望在文件末尾追加内容,可以使用 ios::app 模式:

ofstream outFile("example.txt", ios::app);
outFile << "这行将被追加到文件末尾。" << endl;
outFile.close();

常见打开模式包括:

mPDF mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),包括边距、边框、填充、行高、背景颜色等。支持从右到左的语言,并自动检测文档中的RTL字符。转置表格、列表、文本

mPDF 24 查看详情 mPDF
  • ios::out - 输出(写入)模式
  • ios::in - 输入(读取)模式
  • ios::app - 追加模式,所有写入操作都在文件末尾
  • ios::ate - 打开后立即定位到文件末尾
  • ios::trunc - 若文件存在,则清空原内容(默认写入行为)

读取文本文件内容

使用 ifstream 类可以读取文件内容。下面是从文件逐行读取的示例:

ifstream inFile("example.txt");
if (!inFile) {
    cout << "无法打开文件用于读取!" << endl;
    return 1;
}
<p>string line;
while (getline(inFile, line)) {
cout << line << endl;
}
inFile.close();</p>

getline 函数能正确处理包含空格的行。也可以用 >> 操作符读取单个单词,但会跳过空白字符。

同时读写文件(fstream)

当需要对同一个文件进行读写操作时,可使用 fstream 类,并指定模式为 ios::in | ios::out:

fstream file("data.txt", ios::in | ios::out);
// 先读取现有内容
string content;
while (getline(file, content)) {
    cout << content << endl;
}
// 移动写指针到末尾再添加新内容
file << "新增的一行" << endl;
file.close();

注意:若文件不存在,这种打开方式不会自动创建,需先确保文件存在或额外处理。

基本上就这些。掌握 fstream 的基本用法后,就能轻松实现文本文件的读写操作。关键是记得检查文件是否成功打开,并在使用后调用 close() 关闭文件流。不复杂但容易忽略。

以上就是C++如何读写文件_C++中使用fstream库进行文本文件输入输出的详细内容,更多请关注其它相关文章!

本文转自网络,如有侵权请联系客服删除。