C++ primer阅读笔记---------------IO

该博客用于记录自己在阅读过程中不懂的知识点,很少用到但比较重要的知识点以及模棱两可的知识点

IO库条件状态。


使用流之前应检查其状态

数据的读写会用到一个叫缓冲区的东西,当你打印一个字符串时,有可能会立即打印也有可能会写进缓冲区,随后再打印,缓冲区刷新(即数据真正的写入文件或者输出设备)的原因:
     程序正常结束时,mian函数的return。
    缓冲区满
    endl,flush,ends
    使用unitbuf设置流的操作不使用缓冲区,该流的所有操作都立即刷新缓冲区,使用方法:
    cout << unitbuf; 取消的方法: cout << nounitbuf;
    流之间存在关联关系,默认情况下,cin和cerr都关联到cout,执行cin和cerr时会刷新cout的缓冲区

程序崩溃并不会刷新缓冲区

使用tie关联输入输出流

文件模式:
    in //读文件
    out //写文件
    app //每次写操作前定位到文件末尾
    ate //打开文件后立即定位到文件末尾
    trunc //截断文件(清空已存在的文件流)
     binary //二进制方式进行IO

out模式打开文件会清空数据,避免的方法是加上app或者in模式

每次调用open打开文件时都会确定文件模式

如果遇到需要处理一行数据而恰好一行数据中包含多个字符串时,可以使用istringstream和ostringstream



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章