c++文件相关

c++文件相关,第1张

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();

______________________________________________

 希望对大家有所帮助。

 

 

 

 

 

 

 

 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/993682.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)