一、打开文件
C++的ifstream可用于读取文件内容,首先需要打开文件。
使用ifstream对象的open()函数打开文件,如果文件不存在,则会创建该文件,如果文件存在,则会打开该文件,同时覆盖文件原有内容。
#include
#include
using namespace std;
int main()
{
string filename = "example.txt";
ifstream ifs;
ifs.open(filename);
if(!ifs.is_open())
{
cout << "打开文件失败" << endl;
return 0;
}
// 文件读取代码
ifs.close();
return 0;
}
在打开文件之后,需要使用流提取运算符“>>”读取文件中的内容。
二、读取文件内容
使用流提取运算符“>>”读取文件中的内容,每次读取一行。
#include
#include
using namespace std;
int main()
{
string filename = "example.txt";
ifstream ifs;
ifs.open(filename);
if(!ifs.is_open())
{
cout << "打开文件失败" << endl;
return 0;
}
string line;
while(getline(ifs,line))
{
cout << line << endl;
}
ifs.close();
return 0;
}
使用getline()函数读取文件中的一行,当读到文件结尾或者读取错误时,getline()函数返回false,循环结束。
三、读取文件中的数字
使用流提取运算符“>>”比较简单,但读取文件中的数字需要注意,需要使用C++提供的字符串转数字函数stoi()。
#include
#include
using namespace std;
int main()
{
string filename = "example.txt";
ifstream ifs;
ifs.open(filename);
if(!ifs.is_open())
{
cout << "打开文件失败" << endl;
return 0;
}
string line;
while(getline(ifs,line))
{
int num = stoi(line);
cout << num << endl;
}
ifs.close();
return 0;
}
四、逐个字符读取文件内容
可以使用流提取运算符“>>”逐个读取文件中的字符。
#include
#include
using namespace std;
int main()
{
string filename = "example.txt";
ifstream ifs;
ifs.open(filename);
if(!ifs.is_open())
{
cout << "打开文件失败" <> c)
{
cout << c;
}
ifs.close();
return 0;
}
这段代码会将文件中的每个字符都读取并输出,但只能读取文本文件,不能读取二进制文件。
五、二进制文件的读取
对于二进制文件的读取,可以使用read()函数从流中读取一定数量的字节。
#include
#include
using namespace std;
int main()
{
string filename = "example.bin";
ifstream ifs;
ifs.open(filename, ios::binary | ios::in);
if(!ifs.is_open())
{
cout << "打开文件失败" << endl;
return 0;
}
char data[100];
ifs.read(data, 100);
ifs.close();
return 0;
}
ios::binary标志表示打开文件为二进制文件。
六、总结
使用C++的ifstream可以简单地读取一个文件的内容,可以按行读取、逐个字符读取、读取二进制文件等。需要注意的是,不同类型的文件需要不同的读取方式。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/249190.html
微信扫一扫
支付宝扫一扫