2016-03-02 146 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,请解释您对代码的关注。这是不是在你的机器上工作? –