欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

如何用C語言生成簡單格式的xml

 更新時間:2013年05月27日 17:40:35   作者:  
本篇文章是對使用C語言生成簡單格式的xml的實現代碼進行了詳細的分析介紹,需要的朋友參考下
代碼很簡單,直接貼了。
復制代碼 代碼如下:

    #include <stdio.h> 

    static FILE *out = NULL; 
    static int tabs = 0; 

    void set_out_fp(FILE *fp) 
    { 
        out = fp; 
    } 

    void put(char *str) 
    { 
        fprintf(out, "%s", str); 
    } 

    void put_head(char *head) 
    { 
        put("<?"); 
        put(head); 
        put("?>\n"); 
    } 

    void out_tabs() 
    { 
        int i; 
        for(i=0; i < tabs; i++) 
        { 
            put("\t"); 
        } 
    } 

    void tag_start(char *tag) 
    { 
        out_tabs(); 
        put("<"); 
        put(tag); 
        put(">\n"); 
        tabs = tabs + 1; 
    } 

    void tag_end(char *tag) 
    { 
        tabs = tabs - 1; 
        out_tabs(); 
        put("</"); 
        put(tag); 
        put(">\n"); 
    } 

    void tag_value(char *tag, char *value) 
    { 
        out_tabs(); 
        put("<"); 
        put(tag); 
        put("\t"); 
        put("\"value\"=\""); 
        put(value); 
        put("\""); 
        put("\t/>\n"); 
    } 

    void tag_value_num(char *tag, long value) 
    { 
        out_tabs(); 
        put("<"); 
        put(tag); 
        put("\t"); 
        put("\"value\"="); 
        fprintf(out, "%d", value); 
        put("\t/>\n"); 
    } 

    int main() 
    {    
        FILE *fp = fdopen(1, "a"); 
        set_out_fp(fp); 

        put_head("xml version='1.0' encoding=\"GBK\""); 
        tag_start("投遞信息"); 
        tag_start("硬件"); 

        tag_value_num("網卡", 1); 

        tag_end("硬件"); 
        tag_end("投遞信息"); 

        fclose(fp); 

        return 0; 
    } 

相關文章

  • C++服務器和客戶端交互的項目實踐

    C++服務器和客戶端交互的項目實踐

    本文主要介紹了C++服務器和客戶端交互的項目實踐,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-07-07
  • C/C++的文件IO函數你知道嗎

    C/C++的文件IO函數你知道嗎

    這篇文章主要為大家詳細介紹了C/C++的文件IO函數,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助
    2022-03-03
  • C++中策略模式和工廠模式的區(qū)別

    C++中策略模式和工廠模式的區(qū)別

    這篇文章介紹了C++中策略模式和工廠模式的區(qū)別,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • 詳解c++中的異常

    詳解c++中的異常

    程序在運行過程中,有對也就有錯,正確那么就不用說了,但是如果錯誤,那么我們如何快速的定位到錯誤的位置,以及知道發(fā)生了什么錯誤。當一個函數發(fā)現自己無法處理的異常,就會拋出一個異常,讓函數調用者直接或者間接的處理這個錯誤。本文將詳解介紹c++中的異常
    2021-06-06
  • C++深度探索虛函數覆蓋示例

    C++深度探索虛函數覆蓋示例

    虛函數主要通過V-Table虛函數表來實現,該表主要包含一個類的虛函數的地址表,可解決繼承、覆蓋的問題,下面這篇文章主要給大家介紹了如何通過一篇文章帶你掌握C++虛函數的來龍去脈,需要的朋友可以參考下
    2022-12-12
  • QT定時器事件的實現示例

    QT定時器事件的實現示例

    本文介紹了QT定時器事件的概念和原理,闡述了其工作方式及實現方法,QT定時器事件可以用于在一定時間間隔內執(zhí)行特定的任務,從而實現定時操作和控制,具有一定的參考價值,感興趣的可以了解一下
    2023-08-08
  • 淺談十進制小數和二進制小數之間的轉換

    淺談十進制小數和二進制小數之間的轉換

    下面小編就為大家?guī)硪黄獪\談十進制小數和二進制小數之間的轉換。小編覺得挺不錯的現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-01-01
  • C++實現班級成績管理系統(tǒng)

    C++實現班級成績管理系統(tǒng)

    這篇文章主要為大家詳細介紹了C++實現班級成績管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-02-02
  • 使用C++實現FTP上傳和下載

    使用C++實現FTP上傳和下載

    當在Windows上使用C++進行FTP上傳和下載時,您可以使用libcurl庫來簡化操作,本文將為大家詳細介紹具體步驟,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-12-12
  • 詳解C語言內核中的自旋鎖結構

    詳解C語言內核中的自旋鎖結構

    自旋鎖是內核中提供的一種高IRQL鎖,用同步以及獨占的方式訪問某個資源。自旋鎖是為了解決內核鏈表讀寫時存在線程同步問題。本文將講解一下自旋鎖的簡單應用,感興趣的可以了解一下
    2022-09-09

最新評論