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

基于Protobuf C++ serialize到char*的實現方法分析

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

protobuf的Demo程序是

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

方法一:

官方demo程序采用的是

復制代碼 代碼如下:

 // 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,把數據序列(反序列)打磁盤文件中。

 

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

方法二:

復制代碼 代碼如下:

int size = address_book.ByteSize();

void *buffer = malloc(size);

address_book.SerializeToArray(buffer, size);

方法三:

復制代碼 代碼如下:

使用ostringstream ,

std::ostringstream stream;

address_book.SerializeToOstream(&stream);

string text = stream.str();

char* ctext = string.c_str();

相關文章

  • C/C++讀寫JSON數據的詳細過程記錄

    C/C++讀寫JSON數據的詳細過程記錄

    JSON文件無論是在web開發(fā)、客戶端開發(fā)、服務端等開發(fā)中都是應用比較廣泛的的第一種輕量級數據交換格式,非常方便閱讀和編寫,下面這篇文章主要給大家介紹了關于C/C++讀寫JSON數據的詳細過程,需要的朋友可以參考下
    2023-04-04
  • C語言五子棋小游戲實現代碼

    C語言五子棋小游戲實現代碼

    這篇文章主要為大家詳細介紹了C語言五子棋小游戲實現代碼,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • 通過c語言調用系統curl動態(tài)庫的示例詳解

    通過c語言調用系統curl動態(tài)庫的示例詳解

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

    Qt6遠程連接MySQL數據庫的簡單易上手版

    在Qt應用程序里,可實現遠程MySQL服務器的連接操作,本文就來介紹一下Qt6遠程連接MySQL數據庫,具有一定的參考價值,感興趣的可以了解一下
    2023-11-11
  • QT中窗口關閉自動銷毀的實現示例

    QT中窗口關閉自動銷毀的實現示例

    這篇文章主要介紹了QT中窗口關閉自動銷毀,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-05-05
  • C語言詳解關鍵字sizeof與unsigned及signed的用法

    C語言詳解關鍵字sizeof與unsigned及signed的用法

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

    C語言中的sscanf()函數使用

    本文主要介紹了C語言中的sscanf()函數使用,sscanf通常被用來解析并轉換字符串,可以實現很強大的字符串解析功能,下面就一起來了解一下
    2023-05-05
  • C語言超詳細講解字符串相乘

    C語言超詳細講解字符串相乘

    這篇文章主要介紹了用C語言如何來實現字符串相乘的方法,這里我們會利用到memset函數,memset函數是對較大的結構體或數組進行清零操作的一種最快方法,可以說是初始化內存的“萬能函數”,下面我們詳細了解一下
    2022-03-03
  • C++超詳細講解數組操作符的重載

    C++超詳細講解數組操作符的重載

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

    Visual?Studio?2022下載及配置OpenCV4.5.5的詳細過程

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

最新評論

峨眉山市| 北海市| 平利县| 桃园市| 罗甸县| 翼城县| 湖北省| 亚东县| 安远县| 旬阳县| 广灵县| 罗源县| 宁乡县| 炎陵县| 彭山县| 朝阳区| 榆社县| 泰顺县| 筠连县| 汝城县| 缙云县| 高清| 麻阳| 宽甸| 多伦县| 怀来县| 江川县| 双峰县| 花莲市| 琼海市| 平顺县| 舒城县| 白城市| 鄂温| 台前县| 启东市| 腾冲县| 三门县| 玉林市| 工布江达县| 防城港市|