先前介紹讀取檔案 (Read File),是以一行一行逐步讀取,現在我們想要一次讀取整個檔案為字串,再來做其它處理,這樣可以怎麼實作呢?
這個檔案內容是關於人臉資訊的JSON檔,包含年齡、性別、姿勢、種族、微笑等等量化資訊。
想要讀取整個檔案為字串就靠內建函式,幾行程式碼就能實現!
將檔案放置到專案可以讀取到的位址,在程式碼中設定該檔名:
/** Theme: Read Whole File to String IDE: Xcode 7 Language: C++ Date: 105/04/04 Author: HappyMan Blog: https://cg2010studio.wordpress.com/ */ #include <iostream> #include <fstream> using namespace cv; using namespace std; int main(int argc, char** argv) { ifstream inFile; inFile.open("HappyFace.json");// Open the input file stringstream strStream; strStream << inFile.rdbuf();// Read the file string string = strStream.str();// string holds the content of the file cout << string << endl;// You can do anything with the string return 0; }
編譯執行後列印:
{ "face": [ { "attribute": { "age": { "range": 5, "value": 29 }, "gender": { "confidence": 99.9984, "value": "Female" }, "glass": { "confidence": 99.9052, "value": "None" }, "pose": { "pitch_angle": { "value": 0.000004 }, "roll_angle": { "value": -6.40648 }, "yaw_angle": { "value": -0.188313 } }, "race": { "confidence": 99.1486, "value": "Asian" }, "smiling": { "value": 96.3368 } }, "face_id": "8afb059d5b0d9defb366432bb34134ea", "position": { "center": { "x": 48.170732, "y": 53.536585 }, "eye_left": { "x": 38.587805, "y": 46.830488 }, "eye_right": { "x": 57.097317, "y": 44.752195 }, "height": 37.804878, "mouth_left": { "x": 41.124878, "y": 63.946829 }, "mouth_right": { "x": 59.078293, "y": 61.30439 }, "nose": { "x": 48.540488, "y": 56.718049 }, "width": 37.804878 }, "tag": "" } ], "img_height": 410, "img_id": "e42b1354574fe1b52234fb0f88a6edfc", "img_width": 410, "session_id": "a8b79da2383a45b4a4b08251bd3645ef", }
接著就可以拿string來做後續處理,比如來剖析(parse)JSON檔,讓我們可以輕易取得內容中的某個key-value。
Comments on: "[C++] 讀取整個檔案為字串 (Read Whole File to String)" (1)
[…] 接續上一篇文章:讀取整個檔案為字串 (Read Whole File to String),接著我們要將它解析JSON (Parse JSON)。 […]
讚讚