C语言,如何将一个文件里面的数据读出来,然后转到一个结构体里?用什么函数?或有什么方法?

如题所述

第1个回答  2011-04-29
给你看一个示例程序,你就明白了:

#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);

第2个回答  2011-04-29
fread或者read追问

能举例说下fread函数怎么使用吗?

追答

比如定义了
FILE *fp;
int buf[100];
fread(buf,sizeof(buf),1,fp);
就把需要的东西从文件读到了buf数组里面了,每次读BUF个长度,读1次

本回答被提问者采纳
第3个回答  2011-04-29
fread
功 能: 从一个流中读数据
函数原型: size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
参 数:
1.用于接收数据的地址(指针)(buffer)
2.单个元素的大小(size) :单位是字节而不是位,例如读取一个整型数就是2个字节
3.元素个数(count)
4.提供数据的文件指针(stream)
返回值:成功读取的元素个数

c语言,怎么从文件读取数据到结构体,求助
line1=(structdata*)malloc(sizeof(structdata)*(r_n+1));//创建一个结构体含有(r_n+1)个数据 for(i=1;i<=r_n;i++){ fgets(buf,BUFSIZE,fp);//一次读取一行 sscanf(buf,"%sX%fY%fE%f",&line1[i].G,&line1[i].Xs,&line1[i...

c语言入门代码009 从 txt 文本文件中加载数据到结构体数组
第一步,通过fopen函数以读取模式打开文件,准备从文件头部获取数据。第二步,文件中逐个读取结构体字段,并将数据保存到数组中,直到文件结尾。feof函数用于检测文件是否达到末尾,判断是否需要结束循环。在读取数据时,使用fscanf函数,与scanf相似,但添加了文件指针参数,用于在文件内容中执行读取操作。数据...

C语言 如何把文件里面的内容存到结构体数组里面
需要使用文件操作函数fwrite和fread。读物文件并写入结构体,同时保存文件的代码如下:1、写 FILE* fp = fopen("card.dat", "wb");for(int i = 0; i < counts; i++){fwrite(&card[i], sizeof(struct card), 1, fp);}fclose(fp);2、读 FILE* fp = fopen("card.dat", "rb");in...

C语言中把文件里面的几组数据依次读出来分别赋值给几个结构体变量(用链...
feof(),用这个函数判断是否读到文件尾了。fread(buf,size,count,fp);\/\/buf输入数据起始地址,size 每个数据块的大小,count 每次写入的数据块个数,fp 文件指针 写好后是:while(!feof(fp)){ fread(&temp[i],sizeof(struct use),1,fp);\/\/这个读出来放数组里面 i++;} 问题是你读的是txt...

C语言怎样将.txt文件中的数据写入到结构体中去
txt文件中的数据写入到结构体中去的源代码如下:include<stdio.h> include <string.h> \/\/可以退出的头文件 include <stdlib.h> \/\/结构体的长度 define DATALEN 15 \/\/函数声明 \/\/定义结构数组 struct wordUnit{ int id; \/\/id char word[10]; \/\/词语 char depId[10]; \/\/依存词语的id char...

如何用c语言读取文本文件中的多行数据
1、用fgets函数可以读取文件中某行的数据,某列数据就必须一个一个读入每行的第几个字符,再存入到一个字符串当中。2、例程:include<stdio.h>#include<string.h>void main(){ char a[100],b[100],c[100]; int i=3,j=4,k=0; \/\/第三行,第四列 FILE *fp = fopen("data.tx...

C语言写好了一个文件保存到了硬盘中,下次打开这个文件时,怎样才能返 ...
如果是这样的话,首先将fp移动到你保存该结构体的地方,然后用read(fp, (char*)&your_struct_obj, sizeof(your_struct));或者类似的函数就可以了。这种利用文件保存结构,再恢复结构的方法对结构体中的指针存在问题,恢复后的指针有可能是野指针,指针是进程空间的绝对地址,可改用相对某个特定变量的...

...文本是关于学生成绩的结构体,然后读入另一个文件并且按照总分输出...
预处理器根据以字符#开头的命令修改原始的c程序,比如#include<stdio.h>告诉预处理器读取系统头文件stdio.h的内容,并把它直接插入程序文本中,将#define的变量替换等等,结果得到了另一个c程序,通常以.i作为文件扩展名。编译器将文本文件hello.i翻译成hello.s,它包含了一个汇编语言程序。汇编语言程序...

C语言怎么把数据文件中的数据读出来跟程序中的数据进行比较?
\/*exit声明在stdlib.h*\/ } int score = 99;\/*你程序中的数据*\/ int read = 0;\/*存放你从文件中读出来的数据*\/ \/*用文件操作函数 fscanf读出一个分数 *\/ \/*文件操作 函数可以自己查C语言函数手册*\/ while(fscanf(fp, "%d", &read) > 0) { \/*测试输出*\/ printf("read from...

从文本文件里读取数字,c语言如何实现
voidmain(){ FILE*fin;inta,b,c,d;chars[20];floatf1,f2,f3,f4;fin=fopen("abc.txt","r");\/\/打开 fscanf(fin,"%1d%1d%1d%1d",&a,&b,&c,&d);\/\/按1位整型读前4个数 printf("a=%db=%dc=%dd=%d\\n",a,b,c,d);rewind(fin);\/\/文件回绕到开始处 fscanf(fin,"%s",s);...

相似回答
大家正在搜