C语言将文件存入二维数组

文件为存在C盘下的TXT格式文件,数据如下:
12345
54321
23541
12453
52314
将这个文件存入二维数组a[5][5].
请问如何实现。

#include <stdio.h>

int main()
{
FILE *fp;
int a[5][5],i = 0,j = 0;
char ch;

fp = fopen("c:\\file.txt","rt");/* 文件名改成你自己的文件名 */
if(fp == NULL)
{
printf("Error\n");
getch();
return 0;
}
ch = fgetc(fp);
for( i = 0; i < 5; i++)
{
for(j =0 ;j < 5; j++)
{
a[i][j] = ch - '0';
ch = fgetc(fp);
}
ch = fgetc(fp);/* 跳过回车符 */
}
for( i = 0; i < 5; i++)
for(j =0 ;j < 5; j++)
printf("%3d",a[i][j]);

return 0;
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-11-03
只有5个数,读到EOF 退出。
for(j=0;j<5;j++)
for(i=0;i<5;i++)
if ( fscanf(fp,"%d", &a[j][i])==EOF) break;

如果都是1位数,则用格式 %1d:
...
if ( fscanf(fp,"%1d", &a[j][i])==EOF) break;
相似回答