在程序設(shè)計(jì)和數(shù)據(jù)處理過(guò)程中,經(jīng)常需要讀取和修改文件內(nèi)容。C語(yǔ)言中可以使用標(biāo)準(zhǔn)庫(kù)中的文件操作函數(shù)來(lái)完成這個(gè)過(guò)程。本文將為大家講解一下如何打開cJSON和CSV格式的文件。
cJSON是一個(gè)輕量級(jí)的JSON解析器,可以將JSON格式的數(shù)據(jù)轉(zhuǎn)換為C語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)。使用cJSON庫(kù)需要先下載頭文件和源代碼。在代碼中使用
#include "cJSON.h"語(yǔ)句包含頭文件即可。要打開并讀取JSON文件,可以先使用
FILE* file = fopen("filename", "r");語(yǔ)句打開文件,其中第一個(gè)參數(shù)為文件名,第二個(gè)參數(shù)為讀取文件的模式("r"代表只讀)。接著讀取文件內(nèi)容:
char* content = NULL; fseek(file, 0, SEEK_END); long len = ftell(file); fseek(file, 0, SEEK_SET); content = (char*)malloc(len + 1); fread(content, 1, len, file); fclose(file);這段代碼先計(jì)算文件長(zhǎng)度,然后從文件首位讀取文件內(nèi)容,并保存在content指針中。最后關(guān)閉文件。調(diào)用cJSON庫(kù)的接口可以將content中的JSON格式數(shù)據(jù)轉(zhuǎn)換為C語(yǔ)言的數(shù)據(jù)結(jié)構(gòu)。使用完后,需要釋放content指針:
cJSON* root = cJSON_Parse(content); free(content); //處理數(shù)據(jù) cJSON_Delete(root);
CSV是一種常見的數(shù)據(jù)格式,在數(shù)據(jù)處理中使用也比較廣泛。要打開并讀取CSV文件,可以使用與打開JSON文件相似的方式:
FILE* file = fopen("filename", "r"); if (!file) return; char line[1024]; while (fgets(line, 1024, file)) { //處理每一行數(shù)據(jù) } fclose(file);這段代碼讀取文件中的每一行數(shù)據(jù),并將其保存在line字符數(shù)組中。通過(guò)處理line數(shù)組中的數(shù)據(jù),可以得到CSV格式的數(shù)據(jù)。