2013-10-17 51 views
-3

通過輸入重定向(如下面的文件)給出一個文件,如何將值存儲在數組中以便我可以對它們執行計算? (也頂線將只是簡單地被重印的輸出,所以這個問題主要涉及到小數)輸入重定向C

輸入例:

157932 09 01 2013 
0.00 0.00 0.00 
0.36 0.27 0.23 
0.18 0.16 0.26 
0.27 0.00 0.34 
0.24 0.00 0.31 
0.16 0.33 0.36 
0.29 0.36 0.00 
0.21 0.36 0.00 
+1

分配/重新分配(如果大小比預期的大)內存,解析輸入從讀取返回或對輸入執行scanf並最終將數據存儲在數組中? – LostBoy

回答

0

使用

scanf("%lf,%lf,%lf", &A[i][0], &A[i][1], &A[i][2]) 

,每行

1

編輯:誤讀問題,思想文件被作爲參數傳遞給程序,沒有被重定向。哎呦!無視這篇文章。

基於文件的輸入是使用文件指針在C中處理的。

FILE* fp; // declare file pointer named fp 
fp = fopen("/*name of file/*", "r"); 

第一個參數是該文件的名稱(接入使用的argv/argc個),第二個是指定你計劃如何與文件進行交互的字符串。在這種情況下,「r」指定您想要從中讀取。其他包括「w」,寫,「a」,追加等等。

fscanf(fp, "%d %d %d", var1, var2, var3); 

文件指針使用稍微修改的scant和printf函數來讀取/寫入它們。它們實際上是相同的,唯一的區別是函數的名稱以f開頭,第一個參數是指向所討論文件的文件指針。上面的示例將從指向fp三個整數的文件讀入,並將它們存儲在var1,var2和var3中。

fclose(fp); 

務必在完成寫入後關閉文件! 「fclose」關閉與文件指針fp關聯的文件。如果你願意,fp可以被重用。

+0

哎呦,粗心的錯誤。有一段時間沒有在C中處理文件,謝謝! ^^ –