C++文件读写代码分享
在C++中,可以通过文件读写来实现将程序处理过的数据存储起来,或者是从外部文件读取数据。本文将介绍C++中文件读写的相关内容,包括文件的打开、读写、关闭等操作,同时提供两个示例供参考。
文件的打开与关闭
文件的打开与关闭是文件读写操作的前提,只有先打开文件,才能够进行文件的读写,读写完成后,还要关闭文件,以释放文件系统资源。
- 打开文件
使用C++中fstream库中的open()
函数来打开文件。open()
方法接收一个包含文件路径的字符串以及一个打开方式的参数。
#include <fstream>
std::ofstream outfile;
outfile.open("output.txt"); // 打开文件output.txt,如果文件不存在则创建文件
其中,open()
方法的第一个参数是文件路径名,可以是相对路径或者是绝对路径。文件路径名需要使用字符串表示。如果文件不存在,则打开操作会自动创建文件。open()
方法的第二个参数是打开文件的模式,比如:
std::ios::out
:输出文件,打开文件进行写入操作std::ios::in
:输入文件,打开文件进行读操作std::ios::app
:追加文件,如果文件存在,则从文件结束的位置开始写入-
std::ios::ate
:打开文件后将文件指针放在文件末尾(at end),可以用来判断文件是否打开成功 -
关闭文件
使用C++中fstream库中的close()
函数来关闭文件。关闭文件后,文件指针就会从这个文件句柄上移除,文件系统资源也就被释放了。可以使用一个if判断来检测文件是否已关闭。
if (outfile.is_open()) {
outfile.close(); // 关闭文件
}
一般来讲,打开文件后需要立即写入数据或者读取数据。实现读写操作需要使用<<
和>>
操作符。
文件的读写
- 写入文件
写入文件时,需要在文件中指定写入的具体内容,并将内容与已打开的文件关联起来。
#include <fstream>
std::ofstream outfile;
outfile.open("output.txt");
outfile << "Hello World!\n";
outfile.close();
在使用<<
操作符向文件中写入数据时,数据需要使用特定的分隔符间隔,Windows和Linux使用相同的分隔符(\n
),所以不需要担心跨平台兼容性问题。
- 读取文件
与写入文件类似,读取文件的操作也需要先打开指定的文件,并将已打开的文件与读取的具体内容相关联。
#include <fstream>
#include <string>
std::ifstream infile;
infile.open("input.txt");
std::string line;
while (std::getline(infile, line)) { // 一行一行地读取内容
std::cout << line << std::endl;
}
infile.close();
在使用getline()
方法读取文件时,需要先创建一个string类型的变量line
,然后使用std::getline()
方法逐行读取文件内的内容。getline()
方法返回一个bool值,如果读取到文件的结尾,则返回false,否则返回true。读取文件完成后,要及时关闭文件。
示例1:写入文件
下面是一个写入文件的示例程序:
#include <fstream>
#include <iostream>
int main()
{
std::ofstream outfile;
outfile.open("output.txt");
if (!outfile) { // 如果文件不存在,输出错误信息
std::cerr << "The file cannot be opened.\n";
return 1;
}
outfile << "Hello World!" << std::endl; // 向文件中写入内容
if (outfile.is_open()) {
outfile.close(); // 关闭文件
}
return 0;
}
在运行上述程序后,会创建名为output.txt
的文件并向其中写入Hello World!
。
示例2:读取文件
下面是一个读取文件的示例程序:
#include <fstream>
#include <iostream>
#include <string>
int main()
{
std::ifstream infile;
infile.open("input.txt");
if (!infile) { // 判断文件是否打开成功
std::cerr << "The file cannot be opened.\n";
return 1;
}
std::string line;
while (std::getline(infile, line)) { // 一次读取一行数据,直到文件读取完为止
std::cout << line << std::endl;
}
if (infile.is_open()) {
infile.close(); // 关闭文件
}
return 0;
}
在运行上述程序后,input.txt
文件中的内容将被逐行读取并输出到控制台。
总结
通过上述介绍,我们可以看出文件读写在C++中是非常灵活和方便的,只需要几行简单的代码就可以实现文件的读写操作。需要注意的是,在进行文件操作时,要注意文件是否存在和文件的操作权限,以免出现文件打开、写入、读取失败等各种问题。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++文件读写代码分享 - Python技术站