C语言项目化教程(基于智能制造软件) 课件 项目九 汽车数据文件读写(文件)_第1页
C语言项目化教程(基于智能制造软件) 课件 项目九 汽车数据文件读写(文件)_第2页
C语言项目化教程(基于智能制造软件) 课件 项目九 汽车数据文件读写(文件)_第3页
C语言项目化教程(基于智能制造软件) 课件 项目九 汽车数据文件读写(文件)_第4页
C语言项目化教程(基于智能制造软件) 课件 项目九 汽车数据文件读写(文件)_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言程序设计项目八项目九01

02

汽车文本数据的读与写汽车文件数据块的读与写引入:汽车数据的读写

01行车数据存储到本地SD卡读取行车数据进行处理知识储备C语言程序设计

(2)行进中的分叉路口任务目标

打开某品牌汽车的参数文档CarTest.txt,文件末尾添加报价:1800k。知识储备C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉一、FILE类型FILE类型是由系统定义的一种结构体类型,专门用来描述文件的相关信息。VC系统中,FILE类型在“stdio.h”中定义如下:struct_iobuf{

char*_ptr;//文件输入的下一个位置int_cnt;//当前缓冲区的相对位置char*_base;//文件的起始位置int_flag;//文件状态标志int_file;

//文件的有效性验证int_charbuf;//检查缓冲区状况,如果无缓冲区则不读取int_bufsiz;//缓冲区大小char*_tmpfname;//临时文件名};typedefstruct_iobufFILE;知识储备C语言程序设计

二、文件指针示例1:阅读以下的程序,理解通过指针变量访问普通变量的方法文件指针定义的一般形式为:

FILE*文件指针变量名;

例如:FILE*fp;注意:必须调用fopen函数为文件指针fp和文件建立联系,文件指针才指向打开文件的入口地址,通过文件指针找到与它相关的文件。知识储备C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉三、文件的打开fopen函数调用的一般形式为:FILE*fp;fp=fopen("文件名","打开文件方式");示例:判断文件是否打开成功FILE*fp;if((fp=fopen("D:\\demo.txt","r")==NULL){

printf("Failtoopenfile!\n");exit(0);//退出程序(结束程序)}知识储备C语言程序设计

四、打开方式说明打开方式说明"r"以“只读”方式打开文件。只允许读取,不允许写入。文件必须存在,否则打开失败。"w"以“写入”方式打开文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么清空文件内容(相当于删除原文件,再创建一个新文件)。"a"以“追加”方式打开文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么将写入的数据追加到文件的末尾(文件原有的内容保留)。"r+"以“读写”方式打开文件。既可以读取也可以写入,也就是随意更新文件。文件必须存在,否则打开失败。"w+"以“写入/更新”方式打开文件,相当于w和r+叠加的效果。既可以读取也可以写入,也就是随意更新文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么清空文件内容(相当于删除原文件,再创建一个新文件)。"a+"以“追加/更新”方式打开文件,相当于a和r+叠加的效果。既可以读取也可以写入,也就是随意更新文件。如果文件不存在,那么创建一个新文件;如果文件存在,那么将写入的数据追加到文件的末尾(文件原有的内容保留)。知识储备C语言程序设计

五、关闭文件示例:fopen(fp)//文件操作fclose(fp);文件关闭fclose函数调用的一般形式为:fclose(文件指针);知识储备C语言程序设计

六、其他函数fgetc函数——从指定的磁盘文件中读一个字符,该磁盘文件必须是以读或读写方式打开的。其一般调用形式为:ch=fgetc(fp);

fputc函数——把一个字符写到磁盘文件上去。其一般调用形式为:fputc(ch,fp);知识储备C语言程序设计

七、示例#include<stdio.h>#include<stdlib.h>#defineN100intmain(){FILE*fp;charstr[N+1];//判断文件是否打开失败if((fp=fopen("c:\\iii\\lll.txt","rt"))==NULL){puts("Failtoopenfile!");exit(0);}//循环读取文件的每一行数据//从文件指针处读取N-1个字符到str数值中while(fgets(str,N,fp)!=NULL){

printf("%s",str);}//操作结束后关闭文件fclose(fp);return0;}任务分析与实践C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉任务分析分析:1.打开文件2.定义变量3.进行文件操作

4.关闭(保存)文件打开文件CarTest.txt某品牌汽车的参数文档,添加报价:1800k。任务分析与实践C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉程序代码voidmain(){FILE*fp;charch;//输出文件内容fp=fopen("G:\\CarTest.txt","r")ch=fgetc(fp);for(;ch!=EOF;){putchar(ch);ch=fgetc(fp);}putchar('\n');//追加指定内容ch=getchar();//从计算机终端(一般为键盘)输入一个字符fp=fopen("G:\\CarTest.txt","a");

for(;ch!='\n';){fputc(ch,fp);

ch=getchar();}

fclose(fp);}THANKS!C语言程序设计项目八项目九01

02

汽车文本数据的读与写汽车文件数据块的读与写引入:汽车数据的读写

01行车数据存储到本地SD卡读取行车数据进行处理项目九任务一C语言程序设计

(2)行进中的分叉路口任务回顾

修改某品牌汽车的参数文档,添加报价:1800k。任务过程:1.使用fopen打开文件2.对文档进行操作

3.Fcolse关闭文件任务分析与实践C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉程序代码voidmain(){FILE*fp;charch;//输出文件内容fp=fopen("G:\\CarTest.txt","r")ch=fgetc(fp);for(;ch!=EOF;){putchar(ch);ch=fgetc(fp);}putchar('\n');//追加指定内容ch=getchar();//从计算机终端(一般为键盘)输入一个字符fp=fopen("G:\\CarTest.txt","a");

for(;ch!='\n';){fputc(ch,fp);

ch=getchar();}

fclose(fp);}项目九任务一C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉典型案例1打开某辆汽车E00898.txt的文档,读取文档信息并显示,关闭该文档。任务过程:1.新建文档2.使用fopen打开文件3.对文档进行操作

4.Fcolse关闭文件项目九任务一C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉典型案例1打开某辆汽车E00898.txt的文档,读取文档信息并显示,关闭该文档。voidmain(){FILE*fp;charch;if((fp=fopen("G:\\E00898.txt","r"))==NULL){printf("文件未成功打开\n");exit(0);

}

ch=fgetc(fp);//读取字符for(;ch!=EOF;){putchar(ch);//输出字符ch=fgetc(fp);}putchar('\n');fclose(fp);}项目九任务一C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉典型案例2打开某辆汽车E00898.text的文档,读取文档信息并追加信息,关闭该文档。任务过程:1.新建文档2.使用fopen打开文件3.对文档进行操作

4.Fcolse关闭文件项目九任务一C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉典型案例2voidmain(){FILE*fp;charch;if((fp=fopen("G:\\E00898.txt","r"))==NULL){printf("文件未成功打开\n");exit(0);}ch=fgetc(fp);//读取字符

for(;ch!=EOF;){putchar(ch);//输出字符ch=fgetc(fp);

}putchar('\n');ch=getchar();//获取字符fp=fopen("G:\\E00898.txt","a");for(;ch!='\n';){fputc(ch,fp);//字符追加到文件ch=getchar();

}

fclose(fp);}打开某辆汽车E00898.text的文档,读取文档信息并追加信息,关闭该文档。THANKS!C语言程序设计项目八项目九0102

汽车文本数据的读与写汽车文件数据块的读与写知识储备C语言程序设计

(2)行进中的分叉路口任务目标

从键盘输入汽车的信息,把它们保存到car.txt中控制台输入文件存储知识储备C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉一、二进制文件二进制文件是使用

ASCII及扩展ASCII字符编写的数据或程序指令的文件。如果一个文件专门用于存储文本字符的数据,称之为文本文件。知识储备C语言程序设计

二、函数示例1:阅读以下的程序,理解通过指针变量访问普通变量的方法fwrite函数

调用的一般形式为:fwrite(buffer,size,count,fp);其中:buffer是一个指针(地址),表示存放输出数据的首地址,size是数据块的字节数,count是数据块的块数,fp是文件指针。如果函数调用成功,返回count的值。

fread函数

调用的一般形式为:fread(buffer,size,count,fp);其中:buffer是一个指针(地址),表示存放输入数据的首地址,size是数据块的字节数,count是数据块的块数,fp是文件指针。如果函数调用成功,返回count的值。任务分析与实践C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉任务分析1.打开文件2.定义变量3.进行文件操作

4.关闭(保存)文件从键盘输入汽车的信息,把它们保存到car.txt中任务分析与实践C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉程序代码//汽车结构体structcar{ charcarname[20];charprice[10];};//汽车数组structcarc[N];//保存文件函数voidsave(){inti;FILE*fp;fp=fopen("G:\\car.txt","w");for(i=0;i<N;i++)//将N个车辆信息写入文件

if(fwrite(&c[i],sizeof(structcar),1,fp)!=1){printf("文件写入错误!\n");break;}

fclose(fp);}voidmain(){inti;for(i=0;i<N;i++)scanf("%s%s",&c[i].carname,&c[i].price);save();}输入数据到结构体数组c[]将结构体数组c[]保存到文件中THANKS!C语言程序设计项目八项目九0102

汽车文本数据的读与写汽车文件数据块的读与写项目九任务二C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉典型案例1打开某辆汽车car.txt的文档,读取文档信息并显示,关闭该文档。任务过程:1.新建文档2.使用fopen打开文件3.对文档进行操作

4.Fcolse关闭文件项目九任务二C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉典型案例1打开某辆汽车car.txt的文档,读取文档信息并显示,关闭该文档。#include<stdio.h>#include<stdlib.h>#defineN3structcar{charcarname[20];charprice[10];};structcarc[N];voidread(){inti;FILE*fp;fp=fopen("G:\\car.txt","rb");for(i=0;i<N;i++)if(fread(&c[i],sizeof(structcar),1,fp)!=1){printf("文件读取错误!\n");break;}fclose(fp);voidmain(){ inti;read();for(i=0;i<N;i++)printf("%s%s",c[i].carname,c[i].price);

}读取数据到结构体数组c[]打印结构体数组c[]的值项目九任务二C语言程序设计

(2)行进中的分叉路口(1)树生长程中的分叉典型案例2打开某辆汽车car.txt的文档,读取文档信息并修改信息,关闭该文档。任务过程:1.新建文档2.使用fopen打开文件3.对文档进行操作

4.Fcolse关闭文件项目九任务二C语言程序设计

典型案例2#include<stdio.h>#include<stdlib.h>#defineN3

//定义车辆结构体structcar{intcarID;charname[9];intprice;};//定义汽车数组structcarc[N];

voidread(){

inti;FILE*fp;

if((fp=fopen("G:\\car.txt","rb"))==NULL){printf("文件未成功打开!\n");exit(0);}for(i=0;i<N;i++)if(fread(&c[i],sizeof(structcar),1,fp)!=1){printf("文件读取错误!\n");break;}

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论