2016-03-02 205 views
0

這是寫入文本文件前的內容。 「123.txt」:從文本文件讀取一個數組數組到C中的數組

[ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ] 

如何將這些數字拉入數組?

我的想法:

  1. 打開文件(當然)

  2. 使用某種形式的fscanf

  3. 廣場,一個循環之下FSCANF和編號分配到新陣列循環進展

  4. 關閉文件

任何想法如何做到這一點非常感謝。感謝您的時間。

編輯1:

注意我分解出的效率問題,對這個問題進行嚴格的學習目的。此外,錯誤檢測隱含,但不包括在內。

int* load(const char* filename) { 
    int i; 
    len = 100; // How to find len of array? 
    array[len]; 
    FILE* fp = fopen(filename, "r") 

    while(!feof(fp)) { 
     fscanf(fp,"%d, ",&array[i]); 
      i++; 
     } 
     fclose(f1); 
    return array; 

我的代碼在循環不會結束。

+0

你很漂亮,在你的步驟擊中它。現在你所需要的就是代碼。總是讚賞錯誤和邊界檢查,順便說一句。 – WhozCraig

+1

向我們展示您的努力.. –

+0

我已添加代碼請大家看看。 – chickenninja565

回答

-1

只是一個普遍的方式。你可以根據你的需要改變它。

FILE *file = fopen("filename.txt", "r"); 
    int integers[100]; 

    int i=0; 
    int num; 
    while(fscanf(file, "%d", &num) > 0) { 
     integers[i] = num; 
     i++; 
    } 
    fclose(file); 
-1

試圖與文件重定向到標準輸入。一個弱碼,仍然有效。:

#include<stdio.h> 

main() 
{ 
freopen("fileName","r",stdin); 
char arr[200]; 
int result[10],i=0; 
do 
{ 
    scanf("%s",arr); 
    if(arr[0]!='[' && arr[0]!=']') 
    result[i++]=atoi(arr); 
}while(arr[0]!=']'); 

} 
+0

downvoter,請解釋您對代碼的關注。這是不是在你的機器上工作? –