2014-10-04 108 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