如何读取文件内容获取其中的关键字

通过ifstream去读取文件

本文件第一行的内容是:{ tag1:3, tag2:1},最终是找到3这个值并将它转为int值

void stringSplit(string str, char split,vector& res) {

    istringstream streamString(str);

    string token;

    while (getline(streamString, token, split))

    {

        //将token存入res

        res.push_back(token);

    }

}

int readfile(string fileName) {

    //打开文件流,文件名为:fileName

    ifstream file(fileName);

    //如果无法打开此文件,return

    if (!file.is_open()) {

        ALOGD("getMaxTag: Can not open file!");

        return -1;

    }

    char ch;

    std::string firstLine;

    std::getline(file, fitstLine);

    ALOGD("file first line = %s", firstLine.c_str());

    file.close();

    if (firstLine == "") {

        return 0;

    }

    long index = 0;

    //format as bellow:

    //{ tag1:3, tag2:1}

    //格式加入是上面这种

    vector splitLastLine;

    //以:分割字符串,分割后的分别存到splitLastLine,会被分割成“tag1", "3, tag2", "1"

    stringSplit(lastLine, ':', splitLastLine);

    vector splitLastLineTag;

    //以,分割字符串splitLastLine[1]

    stringSplit(splitLastLine[1], ',', splitLastLineTag);

    string indexMax = splitLastLineTag[0];

    char* endptr;

    //将string转成long

    long num = strtol(indexMax.c_str(), &endptr, 10);

    if (*endptr != '\0') {

        ALOGD("getMaxTag: Change failed!");

        return -1;

    } else {

        index = num;

    }

    ALOGD("max index = %ld", index);

    return index;

}

你可能感兴趣的:(Android,Android系统,android)