STL进阶-3

  1. 标准输入输出流:cin,cout,cerr,clog。其中cerr没有缓冲区。
int a;
cin >> a;
//此时,cin流会从缓冲区中拿数据,若缓冲区没有,则等待键盘输入

EOF结束符在键盘上为Ctrl+Z
  1. 文件流操作,写入时增加app属性表示不覆盖之前内容,追加在末尾
  2. windows下文件以回车+换行作为一行结束标志,而在linux下只使用换行作为结束标志,在windows下使用文本模式读写时会对结束标志进行转换
  3. 当想将内存中的对象写入文件中,需要注意内存中以二进制存贮,因此写入时不需要处理行结束标志
class Person
{
public:
    int mAge;
    int mID;
public:
    Person(int age, int ID)
    {
        this->mAge = age;
        this->mID = ID;
    }
};

Person p1(10,20),p2(20,30);

char* FileName = "xxxxx";
//ios::app以在文件末尾追加形式
ofstream osm(FileName, ios::out | ios::binary);//对内存中的二进制数据直接以二进制流的形式打开
osm.write((char*)&p1,sizeof(Person));
osm.write((char*)&p2,sizeof(Person));
//但是写入后文件中内容以二进制的形式显示,无法识别

//将写入文件中的内容,写入对象中去
Person p3,p4;
ifstream ism(FileName, ios::in | ios::binary);
ism.read((char*)&p3,sizeof(Person));
ism.read((char*)&p4,sizeof(Person));

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值