0

これが私のコードであり、セグメンテーション違反が発生し続けます。このコードをフォーマットして、ファイルから一連の数値を読み取るにはどうすればよいですか?

私の入力は次のようになります:82、46、71、56、44、12、100 62、67、64、65、62、39、68 68、90、78、57、76、45、82など

#include <stdio.h>

int main ()
{
    FILE *input = fopen("input.txt", "r");

    int line[7];
    int store = 0, read;

    if(!input)
    {
        printf("Error: Filename \"input.txt\" not found!\n");
    }

    store = 0;
    while(fscanf(input, "%d", &read) != EOF)
    {            
        line[store] = read;                 
        store++;
    }

    printf("%d %d %d %d %d %d %d\n", line[0], line[1], line[2], line[3], line[4], line[5], line[6]); 
    return(0);
}
4

1 に答える 1

0

whileループ条件を次のように変更します。

while( store < sizeof(line)/sizeof(int) && fscanf(input, "%d", &read) != EOF)

入力にスペースがあるよりも多くの数値があるようです。

于 2013-03-20T23:50:03.923 に答える