Re: [問題] C++讀取.txt檔 <--以";"分隔出的數據

看板C_and_CPP作者 (CA)時間14年前 (2009/12/10 18:38), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串3/4 (看更多)
※ 引述《ricky0909193 (小鬥魚)》之銘言: :  使用dev C++ : 小弟最近作研究要分析數據的時候,遇到一個問題。 : 有一個.dat檔的數據堆,我可以用記事本開啟,也可以使用fstream去讀取內容 : 例如: : 1.327896921123;2.4433212324;1.32546442;2.3122554 : 1.43121543525;1.5325436343;3.235443262;4.31232143 : . : . : . : . : 類似的數據若可讀取到陣列裡的話大概是 double[700][10] :  我找了一下以前大家問過的問題,大多都是讀取空白,tab鍵,或是字串, :  看各位前輩們回答的推文裡也都沒有提到該如何讀取以 ";"區隔開的數字 :  誠心請問有經驗的前輩們,我該如何解決這個問題呢? : 謝謝。 ifstream fin( /* ... */ ); std::string line; while( std::getline( fin, line ) ) { /* from #include<sstream> */ std::istringstream sin( line ); while( std::getline( sin, line, ';' ) ) { /* blah blah */ } } 其實還有滿多方法的 如果希望少一道 string to double 的手續的話 囧一點的就是把所有的 ';' 換成 ' ' /* from #include<algorithm> */ std::replace( line.begin(), line.end(), ';', ' ' ); std::istringstream sin( line ); double tmp; while( sin >> tmp ) { /* blah blah */ } 如果很確定每行有幾個有效資料的話 也可以塞 dummy input: fin >> double1 >> charDummy >> double 2 >> charDummy; 不過要是輸入格式跑掉的話會失敗 -- 自High筆記(半荒廢) http://legnaleurc.blogspot.com/ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 123.205.248.119

12/10 19:56, , 1F
非常感謝您的提示,我會再試試看的^^
12/10 19:56, 1F
文章代碼(AID): #1B8C-dPP (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1B8C-dPP (C_and_CPP)