2017-03-31 44 views
-2

我在一個文件中讀取並希望等號等號後的搜索文本文件,並返回值

文本文件看起來像這樣

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; 
} 
+0

你正在努力尋找可變ID(這是空字符串)在舉行的一個子字符串由行變量保存。如果返回的迭代器不是你不打印整行。如果你想得到=之前的內容,你需要在行中搜索'='並將該迭代器用作行上子字符串調用的結束標記。 –

回答

0

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

const size_t pos = line.find('='); 
if (pos != std::string::npos) { 
    std::cout << line.substr(pos + 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; 
} 
相關問題