C++文件读取的4种情况汇总
在C++中,我们有多种方法可以读取文件,不同的方法适用于不同的文件类型和读取需求。接下来,我们将详细介绍C++文件读取的四种情况,并提供示例代码以更好地理解它们。
情况一:使用C++常用I/O库读取文件
使用C++常用I/O库读取文件是 C++ 文件输入/输出最基本的方式之一,可用来读取文本文件。以下代码演示了如何利用C++标准库读取文本文件。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
ifstream inputFile("file.txt");
string line;
if (inputFile.is_open())
{
while (getline(inputFile, line))
{
cout << line << endl;
}
inputFile.close();
}
else
{
cout << "无法打开文件" << endl;
}
return 0;
}
这里我们使用 ifstream
类,ifstrem
可以打开文件,读取文件内容和关闭文件。以上面的代码为例,我们打开了一个名为 file.txt
的文本文件,然后使用 getline()
函数逐行读取文件内容。
情况二:读取二进制文件
读取二进制文件时,我们需要使用另一种I/O库——C++二进制读写库(Binary I/O)。以下代码演示了如何用C++二进制I/O库打开、读取和关闭二进制文件。
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main()
{
int number1;
char number2;
ifstream inputFile("binary_file", ios::in | ios::binary);
if (inputFile.is_open())
{
inputFile.read(reinterpret_cast<char*>(&number1), sizeof(number1));
inputFile.read(&number2, sizeof(number2));
inputFile.close();
}
else
{
cout << "无法打开文件" << endl;
}
cout << "number1的值是:" << number1 << endl;
cout << "number2的值是:" << number2 << endl;
return 0;
}
以读取整型数和字符数为例,我们使用 ifstream
类打开了一个名为 binary_file
的二进制文件,并使用 read()
函数读取了文件中的数值。需要注意的是,读取数据时必须使用 reinterpret_cast
函数将指针转换为所需类型的指针,以保证读取数据的正确性。
情况三:逐字符读取文件
在某些情况下,我们需要逐个字符地读取文本文件,这时我们可以使用 get()
和 unget()
函数。这两个函数可以使我们不仅可以读取文本文件的每个字符,还可以使我们回退备选字符。
#include<iostream>
#include<fstream>
using namespace std;
int main(){
ifstream fin("file.txt");
char temp_ch;
int a=0,b=0;
while((temp_ch=fin.get())!=EOF){
if(temp_ch=='a') a++;
if(temp_ch=='b') b++;
cout<<temp_ch;
if(temp_ch=='\n') cout<<"New line found"<<endl;
}
cout<<"Total a's found: "<<a<<" Total b's: "<<b<<endl;
return 0;
}
以上代码将文本文件 file.txt
的每个字符逐个读取,并在读取每一行的时候都输出一个“New line found”信息。读取时我们使用了 fin.get()
函数,当读取到文件结尾时返回 EOF,控制循环退出。在读取过程中,我们统计a和b的出现次数。
情况四:使用Python I/O库读取文件
Python的I/O库是一个功能丰富的工具,能够满足我们在文件处理中的大部分需求。如果您在C++中使用Python,可以通过Python I/O库来读取文件。以下是一个例子:
#include<iostream>
#include<Python.h>
using namespace std;
int main(){
Py_Initialize();
PyRun_SimpleString("f = open(\"file.txt\")");
PyRun_SimpleString("print(f.read())");
Py_Finalize();
return 0;
}
以上代码利用了Python库中的 open()
和 read()
函数来打开和读取名为 file.txt
的文件。带有 Print()
的代码行输出了文件的全部内容。
以上四种情况就是C++文件读取的主要情况,适用于大多数文件类型和读取需求。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++文件读取的4种情况汇总 - Python技术站