我文件中的数据是这样存储的:
2 2 10 10 10
2 2 10 10 10
2 2 10 10 10
2 2 2 2 2
2 2 2 2 2
要不要用逗号隔开各个数据?
我的程序如下:
#include <stdio.h>
#include <math.h>
void main()
{
int i,j;
int data[7][7];
FILE *fp;
if((fp=fopen("C:\\zuoye\\tuxiang.dat","r"))==0)
{
printf("Can not open file!\n");
exit(0);
}
while(!feof(fp))
{
for(i=0;i<5;i++)
for(j=0;j<5;j++)
fscanf(fp,"%d",&data[i][j]);
}
fclose(fp);
for(i=0;i<5;i++)
for(j=0;j<5;j++)
{
printf("%d ",data[i][j]);
if(j==4) printf("\n");
}
}
那个文件“tuxiang.dat”存放了5行5列的数据,我想将他读入数组中,文件能不开,但是读出的数据不对,还有就是这个文件实干保存为.dat还是保存为.txt格式,还是他们都可以?是不是还可以保存为其他的格式呢?请各位大虾帮忙,小弟初学,还望解释的详细点,小弟不胜感激!
參考答案:fscanf函数,fprintf函数与前面使用的scanf和printf 函数的功能相似,都是格式化读写函数。
fscanf(文件指针,格式字符串,输入表列);
注意fscanf读取文件是以行为单位,就是说每次读取一行.
"格式字符串"
"输入表列" 都是以行为单位输入.
正确用法为
while(!feof(fp))
{
for(i=0;i<5;i++)
fscanf(fp,"%d%d%d%d%d",
&data[i][0],&data[i][1],&data[i][2],&data[i][3],&data[i][4]);
}
其实可以用fread函数,具体用法请查阅相关资料,
还有那个文件名后缀的问题,改文件名后缀并不能改变文件的内部格式,
主要是看你用什么软件创建的文件,如果是用记事本,任何后缀都可以.