c语言读取文本到数组

如何把像如下数据读取到二维数组(是txt文本中的)
1,2,3,4,
5,6,7,8,
9,10,11,12,
数字中间是有逗号隔开的,数组用哪种类型数据定义啊?是int 还是char

第1个回答  2012-11-13
#include <stdio.h>
int main()
{
int a[10][4],i,j;
FILE *fp;
fp=fopen("data1.txt" , "r");
if ( fp==NULL )
{
printf("open file error\n");
return -1;
}
i=0;
while (!feof(fp) )
{
if ( fscanf(fp , "%d,%d,%d,%d," , &a[i][0] , &a[i][1] , &a[i][2] , &a[i][3] ) != 4 )
break ;
i++;
}
fclose(fp);
for(j=0;j<i;j++)
printf("%d,%d,%d,%d\n" , a[j][0] , a[j][1] , a[j][2] , a[j][3] );
return 0;
}
第2个回答  2012-11-13
int就好了,纯数字么。读取的时候用格式化的读取方式追问

不是纯数字的啊 还有逗号的 还要输出的

追答

逗号也要啊。那就用char型的好啦。我以为逗号是输出的时候后加上的呢。
不过如果是这种格式化的,最好的就是用格式化方法输入输出,省时省力。如果是作业的话就另说了……

追问

那输出时也用char 数字就乱码了吧

追答

输出的格式和读入的格式相同怎么会乱码呢?
比如输入时是("%c%c%c%c%c%c%c%c"),输出的时候也这么输出啊。
如果输入时是("%d%c%d%c%d%c%d%c"),输出的时候就这么输出,不过这样应该不是在同一个数组里面了……

追问

是的啊 用数组输出时候就不对了啊 不知是简单的输入输出 要通过数组的

追答

你使用循环输入输出的?
输入的时候就保存在in[i]里面,再输出的时候按顺序输出,怎么会乱码呢?如果是以char形式输入,那么数字也是以字符形式保存在数组里的,输出的时候也按字符型输出肯定不会乱码啊

第3个回答  2012-11-13
定义为char类型的,因为里面有字符;
相似回答