一、文本文件
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;
}
二、二进制文件