Re: [問題] 如何讀取文字檔中特定某些區塊

看板C_and_CPP (C/C++)作者 (臨玥)時間15年前 (2010/08/18 14:46), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
※ 引述《jam0953 (阿翰)》之銘言: : ( *[1m *[m 為色碼,可以按 Ctrl+V 預覽會顯示的顏色 ) : ( 未必需要依照此格式,文章條理清楚即可 ) : 遇到的問題: (題意請描述清楚) : 我現在有個文字檔,裡頭格式不一 : 我要擷取的部分是total-force這個關鍵字以下的三行 : 而這個文件中total-force的這個區塊,有兩個以上 : 文字檔範例↓ : AAAAA : AAAFGHJ : DDDD : total-force : 1 : 2 : 3 : SDASG : NBUY RQRR : total-force : 1 : 2 : 3 : 希望得到的正確結果: : total-force : 1 : 2 : 3 : total-force : 1 : 2 : 3 : 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux) : c++ : 有問題的code: (請善用置底文標色功能) : #include <iostream> : #include <fstream> : #include <strstream> : #include <string> : using namespace std; : int main() : { : string line; : ifstream input("forcetext",ios::in); : strstream temp; : while(1) : { : getline(input,line); : if(input.eof()) break; //cout << line << endl; // 註解掉 string token("total-force"); // 宣告一個token的字串 內容為total-force if ( line == token ) { // 若兩個字串內容相同 cout << line << endl; //你說要擷取的部分是total-force這個關鍵字以下的三行 //所以for迴圈跑3次 for ( int i = 0; i < 3; i++ ) { getline(input,line); if(input.eof()) break; cout << line << endl; } } : } : input.close(); : return 0; : } : 目前我只會寫到這邊,不會搜尋totalforce和擷取以下三行的動作 : 請大家提供一些意見,感激不盡! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.123.107.181
文章代碼(AID): #1CQu7YB- (C_and_CPP)
文章代碼(AID): #1CQu7YB- (C_and_CPP)