2011-11-19 45 views
0

假設我有明文存儲雙打,由一個空格分隔列,行由換行符分隔的n×n個網格,例如:我如何將文件數據存儲到C中的數組中?

1.01 2.22 6.10 
-22.10 -15.0 1.0 
2.3 -4.4 5.5 

我所知道的是這些數字將是雙打,程序必須將n×n雙精度(即一個方矩陣)解析爲一個二維數組,但不會事先知道n的值。如果有nxm數字,那麼程序可以退出。 謝謝。

回答

2

閱讀線條,使用strtok(s, " \t")來標記它們,然後在結果上調用strtod並存儲它們。添加完整性檢查以確保您得到的是n×n矩陣。

更好的是,如果您的平臺上有它,請使用strsep而不是strtok

或者,撥打scanfň×ñ次,每次檢查它的返回值和最終檢查你正在閱讀的文件是否是在EOF。

+0

值得注意的是'strtok'修改輸入字符串。 –

+0

@Chris:是的,這就是爲什麼我只是將'strsep'和'scanf'添加到答案中作爲選擇。謝謝。 –

+0

嘿,我不太可能得到這個工作。我對C很陌生,在解析文件時很糟糕,你能否給我寫一個如何在檢查換行符和EOF標記時存儲它們的例子? – Chironex

相關問題