這是解決streambuf下載,在C++ 中引入了流的概念,我們很方便的通過流來讀寫文本數(shù)據(jù)和二進制數(shù)據(jù),那么流對象的數(shù)據(jù)究竟是怎么存儲的呢,為了搞清這個問題,先來看一看c++ 的 io 體系。
解決streambuf當我們用文件或者字符串初始化流的時候,流內(nèi)部會保存該文件和字符串的信息,而在內(nèi)部實例化一個streambuf用來緩沖數(shù)據(jù),些數(shù)據(jù)時,當緩沖區(qū)滿的時候再將數(shù)據(jù)寫到文件或者字符串,讀數(shù)據(jù)時當緩沖區(qū)沒有數(shù)據(jù)時從文件或字符串讀數(shù)據(jù)到緩沖區(qū)。
在文件流這種情況下,streambuf 是為了避免大量的IO 操作
在字符串流的情況下,streambuf (其實是套在上面的流對象)是為了提供字符串的格式化讀取和輸出操作(想象字符串是你從鍵盤輸入的數(shù)據(jù))。
1. 設立全局變量,緩沖數(shù)據(jù),A,B都可以訪問(在這種情況下,A 生產(chǎn)的時候要考慮緩沖區(qū)是否夠用,B讀取的時候要判斷當前是否有有效數(shù)據(jù)可讀,而且很難設計一個合理分配內(nèi)存的緩沖區(qū)(想象A生產(chǎn)的數(shù)據(jù)有時很大,有時很。
2.網(wǎng)絡通信(TCP,UDP)
3. streambuf 登場,有了streambuf配合stream, A就像正常操作流一樣往流對象里塞數(shù)據(jù),而B 就像正常操作流一樣從流里面讀數(shù)據(jù),不用關心其他問題,只要這兩個流的sterambuf 是同一個對象。
解決streambuf如果目錄正確的話可以進目錄找下streambuf文件,有些VC安裝好后,文件名可能是錯的,例如streambuf寫成了STREAMBF,改成STREAMBUF就可以了。
同樣的,改完這個問題之后也有可能會碰到類似的問題,按同樣的方法一般可以解決。
如果目錄下找不到文件的話可以到網(wǎng)上下載streambuf.h這個頭文件。