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

通过ifstream去读取文件

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

void stringSplit(string str, char split,vector<string>& 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<string> splitLastLine;

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

    stringSplit(lastLine, ':', splitLastLine);

    vector<string> 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;

}

  • 16
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值