C++ Study Notes 4

->
文件操作
头文件:<fstream>
文本文件:ASCII码形式存储
二进制文件:二进制形式存储
操作文件三大类:
    ofstream:写
    ifstream:读
    fstream:读写

写文件步骤:
    1.包含头文件
    2.创建流对象 ofstream ofs;
    3.打开文件   ofs.open(path,打开方式)
    4.写数据    ofs<<"data";
    5.关闭文件  ofs.close;

文件打开方式:
    1. ios::in      为读文件而打开文件
    2. ios::out     为写文件而打开文件
    3. ios::ate     初始位置,文件尾
    4. ios::app     追加方式
    5. ios::trunc   如果文件存在则先删除,再创建
    6. ios::binary  二进制方式

    文件打开方式可以配合使用,利用 | 操作符
    例如:   ios::binary|ios::out    二进制写文件

读文件步骤:
    1.包含头文件
    2.创建流对象 ifstream ifs;
    3.打开文件   ifs.open(path,打开方式)
    4.读数据    四种方式
    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;
       while(getline(ifs,buf))
       {
           cout<<buf<<endl;     //也是一行一行读
       }

    4. 不太推荐用,一个字符一个字符读
       char c;
       while((c=ifs.get())!=EOF)
       {
           cout<<c;
       }

->
二进制文件
打开方式: ios::binary

写:
ofstream ofs;
ofs.open("Person.txt",ios::out|ios::binary);
Person p={"张三",18};
ofs.write((const char*)&p,sizeof(Person));      //要把数据的地址强转为const char *

ofs.close();

读:
ifstream ifs;
ifs.open("Person.txt",ios::in|ios::binary);
if ((!ifs.is_open()))
{
    cout<<"failed."<<endl;
    return;
}
else
{
    Person p;
    ifs.read((char *)&p,sizeof(Person));
    cout<<"name: "<<p.m_name<<",age: "<<p.m_age<<endl;
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值