作者j0958322080 (Tidus)
看板C_and_CPP
標題[問題] C 讀取未知數量檔案問題
時間Sat Jan 6 22:29:29 2018
開發平台(Platform): (Ex: Win10, Linux, ...)
win10
編譯器(Ex: GCC, clang, VC++...)+目標環境(跟開發平台不同的話需列出)
gcc 4.9.2
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
no
問題(Question):
我有一堆資料要讀進我寫的程式裡面,可是資料數目不一定,
我程式在跑的時候需要知道我的資料有幾筆才能夠往下算,
因為有一些矩陣相乘的部分所以必須要記錄有幾筆資料。
例如:
[1 2 3 4 5 ] T
[6 7 8 9 10] = A
上有10筆資料,需要開一個 2*5 的矩陣去做,
然後我需要得到 A^T*A = B。
雖然可以事先知道有幾筆資料,
但使用起來最好是能讓程式自己去判斷有幾筆資料比較方便。
感謝各位
http://codepad.org/10n54IRD
code大概是這樣,A[k+1][k+1] --> A[p+1][p+1]
--
!!!!!!!!!!!!!簽名檔破555000點擊率啦!!!!!!!!!!!!!!!
Fw: [問卦] 電影:決勝21點的機率問題
https://goo.gl/2BpbB7 #1MfN3FgZ (joke)
1F:→ yeebon: chx64的1/2悖論真的很經典呢07/22 16:41
!!!!!!!!!!!!!!簽名檔破555000點擊率啦!!!!!!!!!!!!!!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 110.28.162.19
※ 文章網址: https://webptt.com/m.aspx?n=bbs/C_and_CPP/M.1515248972.A.ABE.html
2F:→ caras: 你的想法很對,我支持你,放膽去做吧 01/07 01:11
3F:→ caras: 看不出你的問題在哪裡,只好表示全力支持 01/07 01:13
4F:→ school4303: 不能邊讀邊紀錄?y 01/07 02:05
要如何實現呢??
5F:推 Ommm5566: 用boost filesystem列出資料夾下所有檔案 01/07 06:10
主要數看有幾筆數據,數據是放在.txt or .cvs
6F:推 alan23273850: 1. argv or 2. two-pass sweep 01/07 08:45
這個再研究一下
※ 編輯: j0958322080 (110.28.162.19), 01/07/2018 09:44:04
7F:→ Darkautism: 你是想要動態陣列?malloc和free 01/07 10:22
8F:→ j0958322080: 之後想想應該是只能用動態陣列去開矩陣,不然會吃很 01/07 10:26
9F:→ j0958322080: 多記憶體 01/07 10:26
10F:→ j0958322080: malloc 有辦法我讀怎樣m*n矩陣進去就紀錄m跟n的值嗎 01/07 10:28
※ 編輯: j0958322080 (110.28.162.19), 01/07/2018 11:09:37
11F:推 jerryh001: 只能掃兩次吧 第一次看有幾筆 然後開好空間讀第二次 01/07 13:48
12F:→ MOONRAKER: 當然是自己記阿 你到底對malloc有什麼誤解 01/07 15:54
13F:→ caras: 不需要掃兩次啊,掃到哪存到哪,記憶體配置不夠就再增加 01/08 03:33
14F:→ caras: vector, linked-list, 甚至單純 realloc() 陣列都能做到 01/08 03:35
15F:→ caras: m 跟 n 的值就自己數清楚即可 01/08 03:37
16F:→ jerryh001: 用vector的搬動成本不是會很高嗎? 01/08 16:23
17F:→ Schottky: 和檔案讀一次變成讀兩次的成本比起來誰高? 01/10 02:16
18F:→ Schottky: 還有別急著掏 iterator 出來,vector 可以當 array 用的 01/10 02:22
19F:推 steve1012: 你先用vector 要是發現成本真的很高再考慮改吧 STL很 01/10 16:49
20F:→ steve1012: 屌的 01/10 16:49