1. 程式人生 > >c++基礎(五):檔案逐行讀取,並根據字元分割資料

c++基礎(五):檔案逐行讀取,並根據字元分割資料

專案中有個需求,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及陣列預設值