c++基礎(五):檔案逐行讀取,並根據字元分割資料
阿新 • • 發佈:2018-12-17
專案中有個需求,c++中讀取文字,並將讀取的字串根據空格分隔...
直接程式碼解釋吧...
// 分隔符 const char *SEPARATOR= " "; // 讀取文字資料 ifstream inFile(resultFileName); std::string lineStr; // 檔案中的一行資料 if (inFile) // 有該檔案 { int i = 0; // 迴圈下標 while (getline(inFile, lineStr)) // line中不包括每行的換行符 { // string轉char * char *lineCharArray; const int len = lineStr.length(); lineCharArray = new char[len + 1]; strcpy(lineCharArray, lineStr.c_str()); char *p; // 分隔後的字串 p = strtok(lineCharArray, spaceChar); // 按照spaceChar分隔 // 將資料加入vector中 while (p) { ... // 這裡可以對字元進行處理 p = strtok(NULL, spaceChar); } } }
這裡通過getLine逐行讀取程式碼,然後根據空格使用strtok分割字串,獲取到想要的結果
原文:簡書ThinkinLiu 部落格: IT老五
ps: 實際中的應用場景中往往是獲取文字中的資料,還需要對資料進行字串轉double處理,以及根據行來區分不同資料,這些在程式碼的省略處進行處理就可以了...
c++基礎(一):string轉wstring及檔案拷貝
c++基礎(二):字串替換及檔案路徑擷取檔名
c++基礎(三):陣列自增處理及字串轉int,double
c++基礎(四):int轉string及陣列預設值