2014-10-04 58 views
-4

我有这个文本文件numbers.txt 它包含以下数字,其格式为:1 0 0 1 0 1 0.所以它只包含1和0以及一个空间将它们分开。 我想将数字读入“a”数组。将格式化文本文件读入数组的语法C

如果有人能够帮助我解释代码,那将是惊人的,我研究了互联网,但我不明白输入/输出中的许多术语。 这里是我尝试做的工作,但它没有的代码。墓是声明为最大200元的int数组,我初始化为0。仍然无法正常工作。

FILE *fp; 
fp=fopen("fajl.txt","r"); 
int c; 
if (fp!=NULL) { 
    while (feof(fp)!=0) { 
     fscanf(fp,"%d ",&tomb[i]); 
     ++i; 
    } 
    fclose(fp); 
} else { 
    printf("Nem tudtam megnyitani a fajlt\n"); 
} 
+2

一些类型的循环将是一个良好的开端。然后,如果只有C有某种[文件输入和输出支持](http://en.cppreference.com/w/c/io),那很好。 – 2014-10-04 16:32:18

+1

如果您不了解互联网上现有的任何*资源,您将如何理解这里的答案? – 2014-10-04 16:33:24

+0

我试过这个,但它使我的应用程序崩溃:FILE * fajl = freopen(“fajl.txt”,“r”,stdin); int ch; ((ch = fgetc(fajl))!= EOF)tomb [i] = fgetc(fajl); i ++; tomb_hossz ++; } – Maniak 2014-10-04 16:34:22

回答

0

尝试这一个,这将读取1或0从输入和放在数组(最大100推测),我将包含1或0的数字。

int b[100], c; 
int i = 0; 
while ((i < 100) && (c = getchar()) != EOF) { 
    if ((c == '1') || (c == '0')) 
     b[i++] = c - '0'; 
} 
+0

但我需要1和0作为值,而不是字符,因为我需要进行比较。 – Maniak 2014-10-04 16:42:53

+0

@Maniak编辑我的答案,使b数组作为整数数组,如你所愿,接受? – 2014-10-04 16:45:36

0
#include<stdio.h> 
int main() 
{ 
    FILE *fp; 
    int a[100],i=0; 
    fp=fopen("numbers.txt","r"); 
    while(i<100 && fscanf(fp,"%d",&a[i])!=EOF) 
    { 
     i++; 
    } 
    fclose(fp); 
    return 0; 
} 
+2

可能要添加一个检查,以便您不超出数组范围。 – 2014-10-04 16:43:57

+1

我们经常在初始问题中看到未格式化的代码。但在答案?请! – 2014-10-04 16:50:45

+0

嗯,值仍然没有插入到我的“a”数组中。我试着用fscanf和scanf,但没有奏效。 – Maniak 2014-10-04 16:54:50