C++文件流读写操作详解
本篇文章将会详细讲解C++中文件流的读写操作,旨在帮助读者深入了解文件流的使用方式。
文件流的基本概念
文件流是C++中重要的一个特性,它允许我们将内存中的数据写入到磁盘中,也可以从磁盘中读取数据到内存中。C++中文件流分为输入流和输出流两种类型,分别对应文件的写入和读取。
文件流的打开和关闭
在使用文件流之前,我们需要使用C++的fstream库头文件,并创建文件流对象。下面的代码演示了如何创建文件流对象并打开文件:
#include <fstream>
#include <iostream>
int main()
{
std::ofstream outfile("example.txt");
if(outfile.is_open())
{
std::cout << "文件打开成功" << std::endl;
}
else
{
std::cout << "文件打开失败" << std::endl;
}
outfile.close();
return 0;
}
上面的代码中使用std::ofstream
类创建了一个输出流对象,并将其存储在名为“example.txt”的文件中。在创建对象后,我们可以使用is_open()
成员函数来检查文件是否成功打开。
在读取或者写入完毕后,我们需要通过调用文件流对象的close()
成员函数关闭文件。
文件的输出流操作
在创建好输出流对象后,我们就可以开始使用文件流对象进行数据的写入了。
常见的输出流操作有下面两个:
std::ofstream outfile("example.txt");
outfile << "Hello World!" << std::endl;
outfile.close();
上面的代码中将字符串“Hello World!”写入到了文件中。我们可以使用输出操作符“<<”向文件中写入数据,类似于使用std::cout
流输出数据。
另一个常用的输出流操作是write()
函数。这个函数会将内存中的数据写入到文件中。
std::ofstream outfile("example.txt", std::ios::binary | std::ios::out);
int number = 100;
outfile.write(reinterpret_cast<char*>(&number), sizeof(int));
outfile.close();
上面的代码中将整数100写入到了example.txt文件中。在使用write()
函数时,我们需要注意第一个参数必须是指向要写入数据的指针,第二个参数表示要写入数据的字节数。需要注意的是,在使用write()
函数时需要打开二进制模式,否则会出现问题。
文件的输入流操作
在创建好输入流对象后,我们就可以开始使用文件流对象进行数据的读取了。
查找文件是否OK
常见的输入流操作是使用输入操作符“>>”读取数据。
std::ifstream infile("example.txt");
std::string content;
while(std::getline(infile,content))
{
std::cout << content << std::endl;
}
infile.close();
上面的代码中使用std::getline()
函数读取文件中的每一行,并将其打印到终端中。
另一个常用的输入流操作是read()
函数。这个函数会将文件中的二进制数据读取到内存中。
std::ifstream infile("example.txt", std::ios::binary);
int number;
infile.read(reinterpret_cast<char*>(&number), sizeof(int));
std::cout << "number = " << number << std::endl;
infile.close();
上面的代码中将从文件中读取一个整数,并输出到终端。
结论
通过本篇文章的讲解,读者应该已经了解了如何使用C++文件流进行数据的读写操作。在实际应用中,文件流是非常常用的一种数据IO方式,对于正确输出和读取数据是非常必要的。因此我们需要特别注意打开文件的模式及流的操作方法。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++文件流读写操作详解 - Python技术站