日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁 > > 充電吧
[導(dǎo)讀]摘要:使用C++讀寫二進制文件,在開發(fā)中操作的比較頻繁,今天有幸找到一篇文章,遂進行了一些試驗,并進行了部分的總結(jié)。使用C++操作文件,是研發(fā)過程中比較頻繁的,因此進行必要的總結(jié)和封裝還是十分有用的。

摘要:

使用C++讀寫二進制文件,在開發(fā)中操作的比較頻繁,今天有幸找到一篇文章,遂進行了一些試驗,并進行了部分的總結(jié)。

使用C++操作文件,是研發(fā)過程中比較頻繁的,因此進行必要的總結(jié)和封裝還是十分有用的。今天在網(wǎng)上找到一篇,遂進行了部分的試驗,以記之,備后用。

?

本文讀寫文件均使用文件流進行操作,主要使用的類是ifstream,?ofstream,?使用時,請務(wù)必包含文件fstream。如下:

#include?

?

?

寫二進制文件

寫二進制文件應(yīng)該使用ofstream類,文件的打開模式一定要是?binary,如果傳入的不是?binary,?文件將以ASCII方式打開。

?

下面是示例代碼,用于寫入文件。

?

std::ofstream?fout("a.dat",?std::ios::binary);

?

int?nNum?=?20;

std::string?str("Hello,?world");

?

fout.write((char*)&nNum,?sizeof(int));

fout.write(str.c_str(),?sizeof(char)?*?(str.size()));

?

fout.close();

?

而寫文本文件則比較簡單,如下:

?

std::ofstream?fout("b.dat");

?

int?nNum?=?20;

std::string?str("Hello,?world");

?

fout?<<?nNum?<<?","?<<?str?<<?std::endl;

?

fout.close();

??

?

讀二進制文件

讀取二進制文件可以使用ifstream?類來進行,文件的打開模式一定要是?binary,如果傳入的不是?binary,?文件將以ASCII方式打開。

?

下面是示例代碼:

?

std::ifstream?fin("a.dat",?std::ios::binary);

?

int?nNum;

char?szBuf[256]?=?{0};

?

fin.read((char*)&nNum,?sizeof(int));

fin.read(szBuf,?sizeof(char)?*?256);

?

std::cout?<<?"int?=?"?<<?nNum?<<?std::endl;

std::cout?<<?"str?=?"?<<?szBuf?<<?std::endl;

?

fin.close();

?

而讀取文本文件則比較簡單:

?

std::ifstream?fin("b.dat");

?

int?nNum;

char?szBuf[256]?=?{0};

?

fin?>>?nNum?>>?szBuf;

?

std::cout?<<?"int?=?"?<<?nNum?<<?std::endl;

std::cout?<<?"str?=?"?<<?szBuf?<<?std::endl;

?

fin.close();

?

文件的打開模式

文件操作時,如果不顯示指定打開模式,文件流類將使用默認值。

?ios::app?//?從后面添加

?ios::ate?//?打開并找到文件尾

?ios::binary?//?二進制模式I/O(與文本模式相對)

?ios::in?//?只讀打開

?ios::out?//?寫打開

?ios::trunc?//?將文件截為?0?長度

可以使用位操作符?OR?組合這些標(biāo)志,比如

?ofstream?logFile("log.dat",?ios::binary?|?ios::app);

?

?

二進制文件的復(fù)制

這里我實現(xiàn)了一個二進制文件的復(fù)制操作,用于驗證讀寫的正確性,示例代碼如下:


[cpp]?view plain?copy bool?copy_binary_file(const?char?*?szDestFile,?const?char?*?szOrigFile)?? {?? ????if?(szDestFile?==?NULL)?? ????{?? ????????return?false;?? ????}?? ?? ????if?(szOrigFile?==?NULL)?? ????{?? ????????return?false;?? ????}?? ?? ????bool?bRet?=?true;?? ?? ????std::ofstream?fout(szDestFile,?std::ios::binary?|?std::ios::app);?? ????std::ifstream?fin(szOrigFile,?std::ios::binary);?? ?? ????if?(fin.bad())?? ????{?? ????????bRet?=?false;?? ????}?? ????else?? ????{?? ????????while(!fin.eof())?? ????????{?? ????????????char?szBuf[256]?=?{0};?? ?????????????? ????????????fin.read(szBuf,?sizeof(char)?*?256);?? ?????????????? ????????????if?(fout.bad())?? ????????????{?? ????????????????bRet?=?false;?? ????????????????break;?? ????????????}?? ?? ????????????//??? ????????????fout.write(szBuf,?sizeof(char)?*?256);?? ????????}?? ????}?? ?? ????fin.close();?? ????fout.close();?? ?? ????return?bRet;?? }??


?

?

后記

由于文本文件本質(zhì)上也是磁盤上的一個個二進制編碼,因此,讀寫二進制文件的代碼同樣可以讀寫文本文件,在文件類型不是很明確的讀寫操作中,直接使用二進制讀寫比較可取,如果可以直接判斷文件類型,則可以分別對待。


本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當(dāng)下,工業(yè)電機作為核心動力設(shè)備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設(shè)計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設(shè)計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設(shè)備的使用壽命。然而,在實際應(yīng)用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設(shè)計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設(shè)中,街道及停車場照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設(shè)計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉