[問題] char* 如何讀取下一行?

看板C_and_CPP作者 (忘了前進)時間12年前 (2012/07/19 23:05), 編輯推噓2(2011)
留言13則, 6人參與, 最新討論串1/2 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) cocos2d-x 問題(Question): 從某個文件檔中將整個文件檔讀入成 char* (因某些原因,無法使用 getline 逐行讀取) 假設 char* 中是 ABCD EFGH HIJK 而我會在每一行中判斷是否有我要的資料, 如果沒有再去下一行找。 本來用 getline 已經可以完成了, 但如上所述,被迫將整段資料存成char*後再來分析, 請問有什麼方法可以做到換行讀取嗎? 請不吝指教 o(><)o -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 1.171.104.79

07/19 23:06, , 1F
最原始的方式:每次讀一個字存入buf,讀到換行符號做處理
07/19 23:06, 1F

07/19 23:07, , 2F
另外,用 fgets 這個函式也可以一次從檔案讀一行
07/19 23:07, 2F

07/19 23:08, , 3F
現在已經不能從讀檔作手腳了,內容只剩下這個char*
07/19 23:08, 3F

07/19 23:10, , 4F
可以很搞剛的把char*變成istringstream然後再getline..
07/19 23:10, 4F

07/19 23:14, , 5F
所有資料都放進char *了嗎?那就找換行字元去切割就好
07/19 23:14, 5F

07/19 23:17, , 6F
istringstream也是個好主意XD
07/19 23:17, 6F

07/19 23:17, , 7F
我知道可以用換行字元切割,但如何換到下一行呢?
07/19 23:17, 7F

07/19 23:19, , 8F
目前正在看 istringstream 0.0
07/19 23:19, 8F

07/19 23:19, , 9F
不介意用任何方法 >"<
07/19 23:19, 9F

07/19 23:21, , 10F
切一塊就是一行啊 所以切來下一塊就是下一行
07/19 23:21, 10F

07/19 23:21, , 11F
(該說原來 getline 實際上的邏輯也就只是這樣)
07/19 23:21, 11F

07/20 06:39, , 12F
sscanf?
07/20 06:39, 12F

07/20 09:40, , 13F
文章代碼(AID): #1G228q0f (C_and_CPP)
文章代碼(AID): #1G228q0f (C_and_CPP)