[問題] txt的內容(不特定長度的數字)轉成數值

看板C_and_CPP (C/C++)作者 (長門教信徒)時間15年前 (2011/03/19 01:18), 編輯推噓6(6012)
留言18則, 3人參與, 最新討論串1/4 (看更多)
開發平台(Platform): (Ex: VC++, GCC, Linux, ...) VC++ 額外使用到的函數庫(Library Used): (Ex: OpenGL, ...) 問題(Question): 請問各位先進。 我目前有一個內有很多資料的txt(內容大概如下所示) 598 65 127 3456 234 674 76 356 3245 765 23 5632 就是有不特定長度的數字,一直下去。 目前我想跳過一段區塊的數據,對之後的做處理。 但因一開始讀入的資料是不特定長度,所以fseek的offst不知如何選取。 (例如我想跳過5筆資料,但因長度不同,且是char。所以我得到的第一個字是5 ,不是598) 想說有沒有方法可以先將所有的資料變成數據(ex:int)? 讓我可以用fseek。 或fseek的offset有較好的方法。 謝謝 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.222.66 ※ 編輯: aiueokaki 來自: 140.115.222.66 (03/19 01:19)

03/19 01:26, , 1F
看你怎麼存 存成二進位檔
03/19 01:26, 1F

03/19 01:27, , 2F
或著是你想用fscanf("%*d")也可以
03/19 01:27, 2F

03/19 01:28, , 3F
他可以吃下來但不賦值
03/19 01:28, 3F
因為我的資料量很大,所以fscanf可能不太適合。 我正在試二進位檔的方法 謝謝

03/19 01:35, , 4F
存成二進位檔, 並在一開始的地方記錄每個區塊的長度
03/19 01:35, 4F

03/19 01:36, , 5F
純文字就只能循序讀了
03/19 01:36, 5F
不好意思,能請問"在一開始的地方記錄每個區塊的長度"這是要怎麼實現,沒概念中= = 謝謝。

03/19 01:41, , 6F
我想知道的是讀入的資料會定量嗎?
03/19 01:41, 6F

03/19 01:43, , 7F
如果不是就計量也可
03/19 01:43, 7F
資料是m x n x k的矩陣形式。 能請問計量是? 不好意思,新手沒啥觀念Orz

03/19 02:00, , 8F
來源資料可以改嗎?寫入是你決定還是別人決定的?
03/19 02:00, 8F
來源資料是已經確定的。不可改。 是 m x n x k的矩陣形式。 謝謝。 ※ 編輯: aiueokaki 來自: 140.115.222.66 (03/19 02:09) ※ 編輯: aiueokaki 來自: 140.115.222.66 (03/19 02:10)

03/19 02:10, , 9F
我的計量輸入的數量
03/19 02:10, 9F

03/19 02:14, , 10F
假如沒有用到大數的話 就fread(ptr,size,m*n*k,fp)試試看
03/19 02:14, 10F

03/19 02:16, , 11F
danielguo 假設前提應是存檔時是你存的.
03/19 02:16, 11F
謝謝解說~ 感恩

03/19 02:16, , 12F
不過這只有一維 接下來再自己轉成三維就可以了
03/19 02:16, 12F
謝謝,晚點試試計量的方法。 真的很感謝。

03/19 02:17, , 13F
要不要先說說所謂的「大量」大概到多大?
03/19 02:17, 13F
512x614x224。 要從裡面切200x200x224出來。跑超久的Orz

03/19 02:24, , 14F
嗯, 二進位檔要是自己存的才有用
03/19 02:24, 14F
原來如此~ 之前沒用過二進位檔= = 謝謝

03/19 02:26, , 15F
數字長度不等, 就不能跳著讀, fscanf 應該夠快了
03/19 02:26, 15F
※ 編輯: aiueokaki 來自: 140.115.222.66 (03/19 02:44)

03/19 02:46, , 16F
我說發個文好了,的確不用一直用 fscanf
03/19 02:46, 16F
※ 編輯: aiueokaki 來自: 140.115.222.66 (03/19 02:58) ※ 編輯: aiueokaki 來自: 140.115.222.66 (03/19 03:00)

03/19 15:13, , 17F
假如是binary 別把空白塞進去檔案裡
03/19 15:13, 17F

03/19 16:00, , 18F
回 firejox, 原po已聲明非binary,且原檔不能更改。
03/19 16:00, 18F
文章代碼(AID): #1DWvF8Rt (C_and_CPP)
文章代碼(AID): #1DWvF8Rt (C_and_CPP)