c++文件 *** 作需要先包含
基础 *** 作:
ofstream: 写 *** 作
ifstream: 读 *** 作
fstream: 读写 *** 作
基本步骤:
_____________________________________________
1.包含头文件:#include
2.创建流对象:ofstream abs;
3.打开文件:abs.open("文件路径",打开方式);
4. *** 作
5.关闭文件:abs.close();
______________________________________________
打开方式:
______________________________________________
1. ios::in 为读文件而打开文件
2. ios::out 为写文件而打开文件
3. ios::ate 初始位置:文件尾
4. ios::app 追加方式写文件
5. ios::trunc 如果文件存在,先删除,再创建
6. ios::binary 二进制方式
注意:文件打开方式配合使用,使用 | *** 作符
例如:用二进制方式写文件 ios::binary | ios::out
______________________________________________
1.文本文件
)1.写文件
利用 ios::out
#include
using namespace std;
#include
void test01()
{
ofstream ofs;
ofs.open("temp.txt",ios::out);
ofs << "一切都结束了" << endl;
ofs << "终究还是错付了" << endl;
ofs.close();
}
int main()
{
test01();
system("pause");
return 0;
}
效果:
)2.读文件
利用 ios::in
这里我们就读刚刚写文件时写的那个文本文件
这里我们会用到
这里读文件中的数据一共有4种方式
就我个人而言,我推荐大家使用第三种方式,简洁高效
代码如下:
#include
using namespace std;
#include
#include
void test01()
{
ifstream abs;
abs.open("temp.txt", ios::in);
//这里我们加一段文件是否打开成功
if (!abs.is_open())
{
cout << "文件打开失败" << endl;
}
else
cout << "文件打开成功" << endl;
//打开方式:4种
//第一种:
/*char buf1[1024];
while (abs >> buf1)
{
cout << buf1 << endl;
}
*/
//第二种:
/*char buf2[1024];
while (abs.getline(buf2, sizeof(buf2)))
cout << buf2 << endl;*/
//第三种:
string buf3;
while(getline(abs,buf3))
cout << buf3 << endl;
//第四种:
/*char c;
while ((c=abs.get() )!= EOF)
cout << c;
abs.close();*/
}
int main()
{
test01();
system("pause");
return 0;
}
效果:
2.二进制文件
最主要的区别是二进制文件打开时要加 ios::binary
)1.写二进制文件
#include
using namespace std;
#include
class person
{
public:
char m_name[64];
int m_age;
char saying[128];
};
void test01()
{
ofstream ofs;
ofs.open("person.txt", ios::out | ios::binary);
person p = { "后悔哥",18,"一切都结束了,终究还是错付了"};
ofs.write((const char*)&p, sizeof(person));
ofs.close();
}
int main()
{
test01();
system("pause");
return 0;
}
效果:
因为是二进制文件,所以会有一些乱码
)2.读二进制文件
同上,我们还是读取刚刚写的一个二进制文件
#include
using namespace std;
#include
#include
class person
{
public:
char m_name[64];
char saying[128];
int m_age;
};
void test01()
{
ifstream abs;
abs.open("person.txt", ios::in | ios::binary);
//这里我们加一段文件是否打开成功
if (!abs.is_open())
{
cout << "文件打开失败" << endl;
}
else
cout << "文件打开成功" << endl;
person p;
abs.read((char*)&p, sizeof(person));
cout <<"姓名:"<< p.m_name << endl;
cout <<"年龄:"<< p.m_age << endl;
cout << "留言:"<
效果:
最后再强调总结一下:
基本步骤:
_____________________________________________
1.包含头文件:#include
2.创建流对象:ofstream abs;
3.打开文件:abs.open("文件路径",打开方式);
4. *** 作
5.关闭文件:abs.close();
______________________________________________
希望对大家有所帮助。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)