从文件中读取两个数组

时间:2016-11-22 01:37:30

标签: c arrays

我是c编程的新手,我的一个程序出了问题。我应该从一个文件中读取三个数组。我正在使用的文件是Temps.txt,下面是文件中的内容。

1           31          37
2           26          24
3           30          38
4           33          25

5           33          21
6           29          28
7           41          46

这一直向下,直到左列为31.我写的代码是

#include<stdio.h>
#include <math.h>
#include <stdlib.h>

int main()
{
    FILE *readfile;
    int New_York[31];
    int Anchorage[31];
    int Dates[31];
    int i;
    printf( "Date    New York    Anchorage\n" );
    if( ( readfile = fopen( "Temps.txt", "r" ) ) == NULL )
    {
        printf( "The file Temps failed to open\n" );
    }
    else
    {
        for( i = 0; i < 31; i++ )
        {
            fscanf( readfile, "%d, %d, %d", Dates + i, New_York + i, Anchorage + i );
            printf( "%d     %d     %d\n", *(Dates + i), *(New_York + i), *( Anchorage + i ) );
        }
        if( fclose(readfile) == EOF ) //close the file.
        {
            printf("The file failed to close.\n");
        }
    }

    return(0);
}

当我编译它时,它运行并且它正在读取的所有数据都打印在Dates数组中,在另外两个数组中,我得到了非常大的数字负数和正数。如果你能帮忙,我会非常感激。

谢谢

1 个答案:

答案 0 :(得分:4)

删掉逗号:"%d, %d, %d"

fscanf( readfile, "%d %d %d", Dates + i, New_York + i, Anchorage + i );