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數字,那麼程序可以退出。 謝謝。
假設我有明文存儲雙打,由一個空格分隔列,行由換行符分隔的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數字,那麼程序可以退出。 謝謝。
閱讀線條,使用strtok(s, " \t")
來標記它們,然後在結果上調用strtod
並存儲它們。添加完整性檢查以確保您得到的是n×n矩陣。
更好的是,如果您的平臺上有它,請使用strsep
而不是strtok
。
或者,撥打scanf
ň×ñ次,每次檢查它的返回值和最終檢查你正在閱讀的文件是否是在EOF。
值得注意的是'strtok'修改輸入字符串。 –
@Chris:是的,這就是爲什麼我只是將'strsep'和'scanf'添加到答案中作爲選擇。謝謝。 –
嘿,我不太可能得到這個工作。我對C很陌生,在解析文件時很糟糕,你能否給我寫一個如何在檢查換行符和EOF標記時存儲它們的例子? – Chironex