2013-02-10 23 views
3

我有一个整数列表,每行一个数字,并且希望将这些数字中的每一个都存储在整数数组中,以便稍后在程序中使用。读取txt文件中的数字列表并将其存储到数组中C

例如在Java中,你会做这样的事情:

FileReader file = new FileReader("Integers.txt"); 
int[] integers = new int [100]; 
int i=0; 
while(input.hasNext()) 
{ 
    integers[i] = input.nextInt(); 
    i++; 
} 
input.close(); 

怎么会在C做?

+0

一如既往,通过张贴您在C中完成的工作来展示一些工作,解释您是否被卡住了。 'open'和'scanf'是你的朋友... – 2013-02-10 20:57:45

+0

是的,我想知道如何在C中做到这一点。我把一个例子在Java中。 – TrialName 2013-02-10 20:57:53

+0

@LihO如果你仔细阅读OP,这是他在java中试图做的一个例子。 – 2013-02-10 20:58:31

回答

6

给这一去。如果您阅读每个函数(fopen(),scanf(),fclose())的手册页以及如何分配C语言中的数组,您会更好。您还应该为此添加错误检查。例如,如果Integers.txt不存在或者您没有权限读取它,会发生什么情况?如果文本文件包含超过100个数字,怎么办?

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

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

看起来不错,但让OP先显示一些努力... – 2013-02-10 21:06:26

+0

虽然我宁愿用'while(fscanf(file,“%d”,#num == 1))'。 – LihO 2013-02-10 21:07:32

+0

@Fredrik OP知​​道Java。 C的一个巨大障碍就是知道要调用哪些函数。希望OP会阅读这些功能的手册页并了解它们的工作原理。 – shanet 2013-02-10 21:08:31

1
#include <stdio.h> 

int main (int argc, char *argv[]) { 
    FILE *fp; 
    int integers[100]; 
    int value; 
    int i = -1; /* EDIT have i start at -1 :) */ 

    if ((fp = fopen ("Integers.txt", "r")) == NULL) 
    return 1; 

    while (!feof (fp) && fscanf (fp, "%d", &value) && i++ < 100) 
    integers[i] = value; 

    fclose (fp); 

    return 0; 
} 
相关问题