读书人

,关于文件读写有关问题

发布时间: 2012-04-11 17:42:33 作者: rapoo

请教高手,关于文件读写问题
一个文本文件,第一列表示ID,第二列表示对应的值,要把它读到一个二维数组中,结果
应当为int a[9][4]={{1,2,5},{2,4},{2,3},{1,2,4},{1,3},{2,3},{1,3},{1,2,3,5},{1,2,3}}该如何实现啊?以下两列为该文本文件
1 1
1 2
1 5
2 2
2 4
3 2
3 3
4 1
4 2
4 4
5 1
5 3
6 2
6 3
7 1
7 3
8 1
8 2
8 3
8 5
9 1
9 2
9 3

[解决办法]
用c语言吗?
FILE *fp;
fp = fopen();
memset(a,0,9*4*sizeof(int));
while(fp!=EOF)
{
fscanf( "%d %d ",&p,&q);
for(int i=0,a[p][i]!=0;i++)
;
a[p][i]=q;
}
print();

只是大概思想吧,几个函数没写全。给你个提示,还是要自己动手做的。
[解决办法]
#include <stdio.h>

#define MAXCOL 10
#define MAXROW 10


int main(int argc, char *argv[])
{
int data[MAXROW][MAXCOL] = {0};
int pos[MAXROW] = {0};
int row;
int ele;
int i = 0;
int j = 0;

FILE *pf = 0;
pf = fopen( "Data.txt ", "r ");
if (0 == pf)
{
perror( "Open file error!\n ");
return -1;
}
while (!feof(pf))
{
fscanf(pf, "%d %d ", &row, &ele);
data[row][pos[row]] = ele;
pos[row]++;
}
for (i = 0; i <MAXROW; i++)
{
for (j =0; j <MAXCOL; j++)
{
printf( "%d ", data[i][j]);
}
printf( "\n ");
}

return 0;
}

可以支持不同顺序的输入

读书人网 >软件架构设计

热点推荐