C语言,如何将一个文件里面的数据读出来,然后转到一个结构体里?用什么函数?或有什么方法?
3个回答
展开全部
给你看一个示例程序,你就明白了:
#include <math.h>
#include <stdio.h>
#define M 4
#define N 5
int fun (int a[M][N])
{
int i,j,sum=0;
for (i=0;i<M;i++)
{
for (j=0;j<N;j++)
sum=sum+a[i][j];
}
return(sum);
}
void main()
{
int aa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8}, {1,3,5,7,0}};
int i, j, y;
void NONO ();
printf ("The original data is : \n");
for (i=0; i<M; i++)
{
for (j =0; j<N; j++)
printf("%6d", aa[i][j]);
printf ("\n");
}
y = fun (aa);
printf("\nThe sum: %d\n" , y);
printf("\n");
NONO();
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
int i, j, y, k, aa[M][N] ;
FILE *rf, *wf ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(k = 0 ; k < 10 ; k++) {
for(i = 0 ; i < M ; i++)
for(j = 0 ; j < N ; j++)
fscanf(rf,"%d", &aa[i][j]);
y = fun (aa);
fprintf(wf,"%d\n", y);
}
fclose(rf);
fclose(wf);
}
#include <math.h>
#include <stdio.h>
#define M 4
#define N 5
int fun (int a[M][N])
{
int i,j,sum=0;
for (i=0;i<M;i++)
{
for (j=0;j<N;j++)
sum=sum+a[i][j];
}
return(sum);
}
void main()
{
int aa[M][N]={{1,3,5,7,9},{2,9,9,9,4},{6,9,9,9,8}, {1,3,5,7,0}};
int i, j, y;
void NONO ();
printf ("The original data is : \n");
for (i=0; i<M; i++)
{
for (j =0; j<N; j++)
printf("%6d", aa[i][j]);
printf ("\n");
}
y = fun (aa);
printf("\nThe sum: %d\n" , y);
printf("\n");
NONO();
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,调用 fun 函数,输出数据,关闭文件。 */
int i, j, y, k, aa[M][N] ;
FILE *rf, *wf ;
rf = fopen("in.dat","r");
wf = fopen("out.dat","w");
for(k = 0 ; k < 10 ; k++) {
for(i = 0 ; i < M ; i++)
for(j = 0 ; j < N ; j++)
fscanf(rf,"%d", &aa[i][j]);
y = fun (aa);
fprintf(wf,"%d\n", y);
}
fclose(rf);
fclose(wf);
}
追问
不明白
追答
如何打开文件?
FILE *rf, *wf ;
rf = fopen("in.dat","r");// 如果是读文件,代码这么写
wf = fopen("out.dat","w");// 如果是写文件,这么写
如何读数据?
fscanf(rf,"%d", &a);
如何写数据?
fprintf(wf,"%d\n", y);
如何关闭文件?
fclose(rf);
fclose(wf);
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fread或者read
追问
能举例说下fread函数怎么使用吗?
追答
比如定义了
FILE *fp;
int buf[100];
fread(buf,sizeof(buf),1,fp);
就把需要的东西从文件读到了buf数组里面了,每次读BUF个长度,读1次
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
fread
功 能: 从一个流中读数据
函数原型: size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
参 数:
1.用于接收数据的地址(指针)(buffer)
2.单个元素的大小(size) :单位是字节而不是位,例如读取一个整型数就是2个字节
3.元素个数(count)
4.提供数据的文件指针(stream)
返回值:成功读取的元素个数
功 能: 从一个流中读数据
函数原型: size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
参 数:
1.用于接收数据的地址(指针)(buffer)
2.单个元素的大小(size) :单位是字节而不是位,例如读取一个整型数就是2个字节
3.元素个数(count)
4.提供数据的文件指针(stream)
返回值:成功读取的元素个数
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |