最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于Protobuf C++ serialize到char*的實(shí)現(xiàn)方法分析

 更新時(shí)間:2013年05月10日 10:56:23   作者:  
本篇文章是對(duì)Protobuf C++ serialize到char*的實(shí)現(xiàn)方法進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下

protobuf的Demo程序是

C++版本的protubuf有幾種serialize和unSerialize的方法:

方法一:

官方demo程序采用的是

復(fù)制代碼 代碼如下:

 // Write the new address book back to disk.

    fstream output(argv[1], ios::out | ios::trunc | ios::binary);

    if (!address_book.SerializeToOstream(&output)) {

      cerr << "Failed to write address book." << endl;

      return -1;

    }

 

 // Read the existing address book.

    fstream input(argv[1], ios::in | ios::binary);

    if (!input) {

      cout << argv[1] << ": File not found.  Creating a new file." << endl;

    } else if (!address_book.ParseFromIstream(&input)) {

      cerr << "Failed to parse address book." << endl;

      return -1;

    }


上面采用的是fstream,把數(shù)據(jù)序列(反序列)打磁盤(pán)文件中。

 

而如果想序列到char *,并且通過(guò)socket傳輸,則可以使用:

方法二:

復(fù)制代碼 代碼如下:

int size = address_book.ByteSize();

void *buffer = malloc(size);

address_book.SerializeToArray(buffer, size);

方法三:

復(fù)制代碼 代碼如下:

使用ostringstream ,

std::ostringstream stream;

address_book.SerializeToOstream(&stream);

string text = stream.str();

char* ctext = string.c_str();

相關(guān)文章

  • C/C++讀寫(xiě)JSON數(shù)據(jù)的詳細(xì)過(guò)程記錄

    C/C++讀寫(xiě)JSON數(shù)據(jù)的詳細(xì)過(guò)程記錄

    JSON文件無(wú)論是在web開(kāi)發(fā)、客戶端開(kāi)發(fā)、服務(wù)端等開(kāi)發(fā)中都是應(yīng)用比較廣泛的的第一種輕量級(jí)數(shù)據(jù)交換格式,非常方便閱讀和編寫(xiě),下面這篇文章主要給大家介紹了關(guān)于C/C++讀寫(xiě)JSON數(shù)據(jù)的詳細(xì)過(guò)程,需要的朋友可以參考下
    2023-04-04
  • C語(yǔ)言五子棋小游戲?qū)崿F(xiàn)代碼

    C語(yǔ)言五子棋小游戲?qū)崿F(xiàn)代碼

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言五子棋小游戲?qū)崿F(xiàn)代碼,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 通過(guò)c語(yǔ)言調(diào)用系統(tǒng)curl動(dòng)態(tài)庫(kù)的示例詳解

    通過(guò)c語(yǔ)言調(diào)用系統(tǒng)curl動(dòng)態(tài)庫(kù)的示例詳解

    這篇文章中我們將通過(guò)一個(gè)簡(jiǎn)單的示例來(lái)講解如何在Ubuntu系統(tǒng)中通過(guò)C語(yǔ)言調(diào)用動(dòng)態(tài)庫(kù)(共享庫(kù))的方法,我們將使用libcurl庫(kù),這是一個(gè)基于客戶端的URL傳輸庫(kù),廣泛用于各種程序和應(yīng)用中以訪問(wèn)網(wǎng)頁(yè)和服務(wù)器數(shù)據(jù),需要的朋友可以參考下
    2024-03-03
  • Qt6遠(yuǎn)程連接MySQL數(shù)據(jù)庫(kù)的簡(jiǎn)單易上手版

    Qt6遠(yuǎn)程連接MySQL數(shù)據(jù)庫(kù)的簡(jiǎn)單易上手版

    在Qt應(yīng)用程序里,可實(shí)現(xiàn)遠(yuǎn)程MySQL服務(wù)器的連接操作,本文就來(lái)介紹一下Qt6遠(yuǎn)程連接MySQL數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-11-11
  • QT中窗口關(guān)閉自動(dòng)銷(xiāo)毀的實(shí)現(xiàn)示例

    QT中窗口關(guān)閉自動(dòng)銷(xiāo)毀的實(shí)現(xiàn)示例

    這篇文章主要介紹了QT中窗口關(guān)閉自動(dòng)銷(xiāo)毀,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-05-05
  • C語(yǔ)言詳解關(guān)鍵字sizeof與unsigned及signed的用法

    C語(yǔ)言詳解關(guān)鍵字sizeof與unsigned及signed的用法

    這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言關(guān)鍵字sizeof&&unsigned&&signed,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • C語(yǔ)言中的sscanf()函數(shù)使用

    C語(yǔ)言中的sscanf()函數(shù)使用

    本文主要介紹了C語(yǔ)言中的sscanf()函數(shù)使用,sscanf通常被用來(lái)解析并轉(zhuǎn)換字符串,可以實(shí)現(xiàn)很強(qiáng)大的字符串解析功能,下面就一起來(lái)了解一下
    2023-05-05
  • C語(yǔ)言超詳細(xì)講解字符串相乘

    C語(yǔ)言超詳細(xì)講解字符串相乘

    這篇文章主要介紹了用C語(yǔ)言如何來(lái)實(shí)現(xiàn)字符串相乘的方法,這里我們會(huì)利用到memset函數(shù),memset函數(shù)是對(duì)較大的結(jié)構(gòu)體或數(shù)組進(jìn)行清零操作的一種最快方法,可以說(shuō)是初始化內(nèi)存的“萬(wàn)能函數(shù)”,下面我們?cè)敿?xì)了解一下
    2022-03-03
  • C++超詳細(xì)講解數(shù)組操作符的重載

    C++超詳細(xì)講解數(shù)組操作符的重載

    C 語(yǔ)言提供了豐富的操作符,有:算術(shù)操作符,移位操作符,位操作符,賦值操作符,單目操作符,關(guān)系操作符,邏輯操作符,條件操作符等。接下了讓我們探究一下數(shù)組操作符的重載
    2022-06-06
  • Visual?Studio?2022下載及配置OpenCV4.5.5的詳細(xì)過(guò)程

    Visual?Studio?2022下載及配置OpenCV4.5.5的詳細(xì)過(guò)程

    這篇文章主要介紹了Visual?Studio?2022下載及配置OpenCV4.5.5的詳細(xì)過(guò)程,在這里注意下Win10的64位操作系統(tǒng),在OpenCV官網(wǎng)下載OpenCV4.5.5,安裝的是Win?pack,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05

最新評(píng)論

黔南| 刚察县| 八宿县| 察哈| 凤庆县| 广河县| 丹寨县| 泰顺县| 东宁县| 务川| 安乡县| 盘山县| 兴文县| 平利县| 怀化市| 丹东市| 襄垣县| 磴口县| 杭州市| 顺义区| 龙胜| 池州市| 石林| 青海省| 聂荣县| 铜川市| 酉阳| 肇庆市| 巴南区| 辽阳市| 忻城县| 潜江市| 平阴县| 仲巴县| 吉首市| 桑日县| 嵊泗县| 银川市| 新蔡县| 汉沽区| 塔河县|