21、文件

一、文本文件

ifstream:(input)、读文件

ofstream:(output)、写操作

fstream:读写文件

(1)、写文件

----------------------------------------

#include<fstream>

ofstream ofs;        //创建流对象

ofs.open("文件路径", 打开方式);        //打开文件

ofs<<"写入的数据";        //ofs,往文件上输出,cout 往屏幕上输出

ofs.close();        //关闭文件

----------------------------------------

 文件打开方式:ios::in(读文件)、  ios::out(写文件)、

                          ios::ate(初始位置:文件尾巴)、

                          ios::app(以追加方式写文件)、append

                          ios::trunc(如果文件存在,先删除再创建)、

                          ios::binary(二进制方式)

二进制方式写文件:ios::binary | ios::in

#include<iostream>
using namespace std;
#include<fstream>

void test01()
{
	ofstream ofs;
	ofs.open("test.txt", ios::out);	 //打开文件所在路径,该文件目录下自动创建保存

	ofs << "姓名:张三" << endl;
	ofs << "性别:男" << endl;

	ofs.close();
}

int main()
{
	test01();

	system("pause");
	return 0;
}

(2)、读文件

1、头文件

#include<fstream>

2、创建流对象

ifstream ifs;

3、打开文件,并判断是否打开成功

ifs.open("test.txt",ios::in);

// ifs.open("D:/ttt/a.text", ios::in);

if ( ! (ifs.is_open() )

{

        cout<<"文件打开失败"<<endl;

}

4、读文件(四种方法)

char buf[1024] = { 0 };

while( ifs>>buf )

{

        cout<<buf<<endl;

}

5、关闭文件

ifs.close();

-----------------------------------

读文件的四种方式

(1)

char buf[1024] = { 0 };

while( ifs>>buf )

{

        cout<<buf<<endl;

}

(2)

char buf[1024] = { 0 };

while( ifs.getline(buf,sizeof(buf) )

{

        cout<<buf<<endl;

}

(3)

string buf[1024] = { 0 };

while( getline( ifs, buf ) )

{

        cout<<buf<<endl;

}

(4) 

char c;

while( (c = ifs.get() != EOF)

{

        cout<<c;

}

#include<iostream>
using namespace std;
#include<fstream>
#include<string>

void test01()
{
	//创建流对象
	ifstream ifs;

	//打开文件,并判断是否打开
	ifs.open("test.txt", ios::in);

	if (!ifs.is_open())
	{
		cout << "文件打开失败" << endl;
	}

	//读数据

	//第一种
	char buf1[1024] = { 0 };
	while (ifs >> buf1)
	{
		cout << buf1 << endl;
	}

	//第二种
	char buf2[1024] = { 0 };
	while (ifs.getline(buf2, sizeof(buf2)))
	{
		cout << buf2 << endl;
	}

	//第三种
	string sbuf;
	while (getline(ifs, sbuf))	//getline(ifs,sbuf) 全局函数
	{
		cout << sbuf << endl;
	}

	//第四种
	cout << "第四种方式读文件" << endl;
	char c;
	while ((c = ifs.get()) != EOF)	//EOF : end of file
	{
		cout << c;
	}

	//关闭文件
	ifs.close();
}

int main()
{
	test01();

	system("pause");
	return 0;
}

二、二进制文件

上一篇:PHP命令执行


下一篇:C++ 读 ,写 文件