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



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