C语言实现读取文件 demo

来源:本站
导读:目前正在解读《C语言实现读取文件 demo》的相关信息,《C语言实现读取文件 demo》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《C语言实现读取文件 demo》的详细说明。
简介: C语言编程,连接数据库有点麻烦,但测试总需要数据,使用手动输入的方式固然是可行的,但是在开发过程中难免会重复使用同样的数据进行测试,而且输入测试数据的过程中花费的时间会很多,所以我们要学会变通,通过读取文件的方式,我们就可以简便的实现获取测试数据集,而不用每次手动输入,大大节省了测试说花费的时间。

C语言编程,连接数据库有点麻烦,但测试总需要数据,使用手动输入的方式固然是可行的,但是在开发过程中难免会重复使用同样的数据进行测试,而且输入测试数据的过程中花费的时间会很多,所以我们要学会变通,通过读取文件的方式,我们就可以简便的实现获取测试数据集,而不用每次手动输入,大大节省了测试说花费的时间。

函数介绍:

ftell(文件名):获取当前文件指针所在位置

int fseek(FILE *stream, long offset, int fromwhere);fseek 用于二进制方式打开的文件,移动文件读写指针位置.

fseek(in,-1L,1);-- 文件流in, 零点为当前指针位置,SEEK_CUR 就是 1,-1L -- 文件指针回退1个字节int fseek( FILE *stream, long offset, int origin );

第一个参数stream为文件指针

第二个参数offset为偏移量,整数表示正向偏移,负数表示负向偏移

第三个参数origin设定从文件的哪里开始偏移,可能取值为:SEEK_CUR、 SEEK_END 或 SEEK_SET

SEEK_SET: 文件开头

SEEK_CUR: 当前位置

SEEK_END: 文件结尾

其中SEEK_SET,SEEK_CUR和SEEK_END和依次为0,1和2.

0代表从开始的位置开始,1代表从当前位置开始,2代表从文件最后开始

简言之:

fseek(fp,100L,0);把fp指针移动到离文件开头100字节处;

fseek(fp,100L,1);把fp指针移动到离文件当前位置100字节处;

fseek(fp,100L,2);把fp指针退回到离文件结尾100字节处。

fscanf(文件名,类型,存储变量地址) :读取一个某种数据类型的内容

如:fscanf(fp,%d,&num)是从文件中当前位置读取一个整数,保存到变量num中

getc(文件名):从文件当前位置获取一个字符并返回

如:char c = getc(fp); 是从文件fp中读取一个字符保存在c中。

文件:job.xml 内容

JOB1,10:00,25,15,2JOB2,10:20,30,60,1JOB3,10:30,10,50,3JOB4,10:35,20,10,2JOB5,10:40,15,30,2

主函数

#include "stdio.h"#include "stdlib.h"#include "string.h"//作业typedef struct jcb{ char name[20]; //作业名称 char SubmitTime[10]; //到达时间 . int WholeTime;   //运行所需时间 char startTime[10];  //开始执行时间 int memory ; //所需内存空间大小  int tapeDriverNum; //所需磁带机数量 struct jcb *link; //下一个指针}jcb;void showAllJob(jcb *jcbs){ jcb *t = jcbs; printf("作业名称 到达时间 估计运行时间 内存需要 磁带机需要n"); for(t=jcbs ; NULL!=t;t=t->link) {  printf(" %s|t  %s|t%d|t%d|t%dn",t->name,t->SubmitTime,t->WholeTime,t->memory,t->tapeDriverNum); }}void importData(){ FILE *fp = NULL; fp=fopen("job.xml","r"); jcb *job = NULL; jcb *q = NULL; jcb *p = NULL; long i =0; char t ; int j = 0;  if(NULL == fp) {  printf("n***t找不到文件n"); } else {  fseek(fp,-6L,2);//获得最后一个位置  i = ftell(fp);   fseek(fp,5L,0);//转到开始位置   while(i+13!=ftell(fp))  {    p = (jcb *)malloc(sizeof(jcb));   p->link = NULL;   t = getc(fp);//获得一个字符      j=0;   //获取作业名称   while(',' != t)   {    p->name[j++] = t;    t=getc(fp);   }   p->name[j] ='';          //获取到达时间   t= getc(fp);   j = 0;   while(',' != t)   {       p->SubmitTime[j++] = t;    t = getc(fp);      }   p->SubmitTime[j] = '';             fscanf(fp,"%d",&(p->WholeTime));      getc(fp); //除去“,”      fscanf(fp,"%d",&(p->memory));      getc(fp);      fscanf(fp,"%d",&(p->tapeDriverNum));      if(NULL == job)   {    job = p;   }   else   {    q = job;    while(NULL != q->link)    {     q = q->link;    }    q->link = p;   }       fseek(fp,13L,1);       } }  showAllJob(job);}int main(){ importData();}

提醒:《C语言实现读取文件 demo》最后刷新时间 2024-03-14 01:01:36,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《C语言实现读取文件 demo》该内容的真实性请自行鉴别。