日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > c/c++ >内容正文

c/c++

鲜为人知的C++ IO fstream流

發布時間:2025/5/22 c/c++ 20 豆豆
生活随笔 收集整理的這篇文章主要介紹了 鲜为人知的C++ IO fstream流 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?注:圖片來自于博客 http://blog.163.com/hbu_lijian/blog/static/126129153201201710456994/

?

  fstream 中IO對象常用的是iftream(文件輸入流) ,ofstream(文件輸出流),用來讀寫文件。

  最近工程中用到socket 接收收據,接收到的數據是一個圖像,接收完之后用于打印,由于圖像接收完整之后才能打印。 一開始我就想建立一個文件保存數據,等保存完畢之后在打開一個文件,讀入數據流然后用于打印。結果發現在大規模的接收文件時候效率很低。

  我在想是否可以既有輸入又有輸出特性,我想到了管道。但有覺得不合適。我不可能為每一個文件都去建立一個管道。而且管道占用內核空間。自信查看IO發現輸入輸出雙向IO。寫測試代碼如下:      

fstream fs;fs.open("test.txt",ios::binary|ios::out|ios::in); //|ios::out);if (!fs.good()){return -1;}char buf[1024] = {"wxr test shuru shu chu liu de hao huai"};fs.write(buf,strlen(buf));fs.flush();char buf2[1024] = {0};fs.seekg(ios::beg,0);fs.read(buf2,strlen(buf));fs.close();return 0;

  驚奇發現寫入和讀出都行,只是在寫完之后讀取的時候將文件指向開始。 最后我的問題如愿解決?! ?/p>

  深思:只考慮線程間使用管道通信。這個類有管道的特性。又有管道所不具備的優勢。只要做好同步 ?一個線程寫數據(文件末尾)?, 一個線程讀數據(文件開始),讀取時候可以檢查數據的完整性在做讀取操作,因為是文件所以數據不會丟失,不像管道讀取之后數據丟失。 所以在線程間通信尤其數據量大的時候我覺得可以采用該類。?

  

?

?

?

轉載于:https://www.cnblogs.com/wolfrickwang/p/3200979.html

總結

以上是生活随笔為你收集整理的鲜为人知的C++ IO fstream流的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。