搜索文本文件并在等号后返回值

时间:2017-03-31 14:44:53

标签: c++

我正在阅读一个文件,并希望在等号后返回某些值

文本文件如下所示

slicenum=1
imageWidth=100
ID=1

等。然后为图像的每个切片重复

现在,我专注于ID,但最终我想要一个数组,我想我想要提取的所有值。

当我这样做时,它只打印整个文件。如何仅在ID的等号后打印值?

string ID;
string line;
while (getline(inFile, line)) {
        if (line.find(ID) != string::npos)
            cout << line << std::endl;
}

2 个答案:

答案 0 :(得分:0)

使用std::string::substrstd::string::find

const size_t pos = line.find('=');
if (pos != std::string::npos) {
    std::cout << line.substr(pos + 1);
}

答案 1 :(得分:0)

我认为这会对你有所帮助:

#include<iostream>
#include<fstream>
#include<string>
using namespace std;
int main()
{
    ifstream in("Text.txt");
    string beforeEqual = "";
    string afterEqual = "";
    while (!in.eof())
    {
        getline(in, beforeEqual, '='); //grtting string upto =
        getline(in, afterEqual, '\n'); //getting string after =
        cout << afterEqual << endl; //printing string agter =
    }
    system("pause");
    return 0;
}