C語言項目化教程(基于智能制造軟件) 課件 項目九 汽車數(shù)據(jù)文件讀寫(文件)_第1頁
C語言項目化教程(基于智能制造軟件) 課件 項目九 汽車數(shù)據(jù)文件讀寫(文件)_第2頁
C語言項目化教程(基于智能制造軟件) 課件 項目九 汽車數(shù)據(jù)文件讀寫(文件)_第3頁
C語言項目化教程(基于智能制造軟件) 課件 項目九 汽車數(shù)據(jù)文件讀寫(文件)_第4頁
C語言項目化教程(基于智能制造軟件) 課件 項目九 汽車數(shù)據(jù)文件讀寫(文件)_第5頁
已閱讀5頁,還剩33頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

C語言程序設(shè)計項目八項目九01

02

汽車文本數(shù)據(jù)的讀與寫汽車文件數(shù)據(jù)塊的讀與寫引入:汽車數(shù)據(jù)的讀寫

01行車數(shù)據(jù)存儲到本地SD卡讀取行車數(shù)據(jù)進行處理知識儲備C語言程序設(shè)計

(2)行進中的分叉路口任務(wù)目標(biāo)

打開某品牌汽車的參數(shù)文檔CarTest.txt,文件末尾添加報價:1800k。知識儲備C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉一、FILE類型FILE類型是由系統(tǒng)定義的一種結(jié)構(gòu)體類型,專門用來描述文件的相關(guān)信息。VC系統(tǒng)中,F(xiàn)ILE類型在“stdio.h”中定義如下:struct_iobuf{

char*_ptr;//文件輸入的下一個位置int_cnt;//當(dāng)前緩沖區(qū)的相對位置char*_base;//文件的起始位置int_flag;//文件狀態(tài)標(biāo)志int_file;

//文件的有效性驗證int_charbuf;//檢查緩沖區(qū)狀況,如果無緩沖區(qū)則不讀取int_bufsiz;//緩沖區(qū)大小char*_tmpfname;//臨時文件名};typedefstruct_iobufFILE;知識儲備C語言程序設(shè)計

二、文件指針示例1:閱讀以下的程序,理解通過指針變量訪問普通變量的方法文件指針定義的一般形式為:

FILE*文件指針變量名;

例如:FILE*fp;注意:必須調(diào)用fopen函數(shù)為文件指針fp和文件建立聯(lián)系,文件指針才指向打開文件的入口地址,通過文件指針找到與它相關(guān)的文件。知識儲備C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉三、文件的打開fopen函數(shù)調(diào)用的一般形式為:FILE*fp;fp=fopen("文件名","打開文件方式");示例:判斷文件是否打開成功FILE*fp;if((fp=fopen("D:\\demo.txt","r")==NULL){

printf("Failtoopenfile!\n");exit(0);//退出程序(結(jié)束程序)}知識儲備C語言程序設(shè)計

四、打開方式說明打開方式說明"r"以“只讀”方式打開文件。只允許讀取,不允許寫入。文件必須存在,否則打開失敗。"w"以“寫入”方式打開文件。如果文件不存在,那么創(chuàng)建一個新文件;如果文件存在,那么清空文件內(nèi)容(相當(dāng)于刪除原文件,再創(chuàng)建一個新文件)。"a"以“追加”方式打開文件。如果文件不存在,那么創(chuàng)建一個新文件;如果文件存在,那么將寫入的數(shù)據(jù)追加到文件的末尾(文件原有的內(nèi)容保留)。"r+"以“讀寫”方式打開文件。既可以讀取也可以寫入,也就是隨意更新文件。文件必須存在,否則打開失敗。"w+"以“寫入/更新”方式打開文件,相當(dāng)于w和r+疊加的效果。既可以讀取也可以寫入,也就是隨意更新文件。如果文件不存在,那么創(chuàng)建一個新文件;如果文件存在,那么清空文件內(nèi)容(相當(dāng)于刪除原文件,再創(chuàng)建一個新文件)。"a+"以“追加/更新”方式打開文件,相當(dāng)于a和r+疊加的效果。既可以讀取也可以寫入,也就是隨意更新文件。如果文件不存在,那么創(chuàng)建一個新文件;如果文件存在,那么將寫入的數(shù)據(jù)追加到文件的末尾(文件原有的內(nèi)容保留)。知識儲備C語言程序設(shè)計

五、關(guān)閉文件示例:fopen(fp)//文件操作fclose(fp);文件關(guān)閉fclose函數(shù)調(diào)用的一般形式為:fclose(文件指針);知識儲備C語言程序設(shè)計

六、其他函數(shù)fgetc函數(shù)——從指定的磁盤文件中讀一個字符,該磁盤文件必須是以讀或讀寫方式打開的。其一般調(diào)用形式為:ch=fgetc(fp);

fputc函數(shù)——把一個字符寫到磁盤文件上去。其一般調(diào)用形式為:fputc(ch,fp);知識儲備C語言程序設(shè)計

七、示例#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);}//循環(huán)讀取文件的每一行數(shù)據(jù)//從文件指針處讀取N-1個字符到str數(shù)值中while(fgets(str,N,fp)!=NULL){

printf("%s",str);}//操作結(jié)束后關(guān)閉文件fclose(fp);return0;}任務(wù)分析與實踐C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉任務(wù)分析分析:1.打開文件2.定義變量3.進行文件操作

4.關(guān)閉(保存)文件打開文件CarTest.txt某品牌汽車的參數(shù)文檔,添加報價:1800k。任務(wù)分析與實踐C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉程序代碼voidmain(){FILE*fp;charch;//輸出文件內(nèi)容fp=fopen("G:\\CarTest.txt","r")ch=fgetc(fp);for(;ch!=EOF;){putchar(ch);ch=fgetc(fp);}putchar('\n');//追加指定內(nèi)容ch=getchar();//從計算機終端(一般為鍵盤)輸入一個字符fp=fopen("G:\\CarTest.txt","a");

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

ch=getchar();}

fclose(fp);}THANKS!C語言程序設(shè)計項目八項目九01

02

汽車文本數(shù)據(jù)的讀與寫汽車文件數(shù)據(jù)塊的讀與寫引入:汽車數(shù)據(jù)的讀寫

01行車數(shù)據(jù)存儲到本地SD卡讀取行車數(shù)據(jù)進行處理項目九任務(wù)一C語言程序設(shè)計

(2)行進中的分叉路口任務(wù)回顧

修改某品牌汽車的參數(shù)文檔,添加報價:1800k。任務(wù)過程:1.使用fopen打開文件2.對文檔進行操作

3.Fcolse關(guān)閉文件任務(wù)分析與實踐C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉程序代碼voidmain(){FILE*fp;charch;//輸出文件內(nèi)容fp=fopen("G:\\CarTest.txt","r")ch=fgetc(fp);for(;ch!=EOF;){putchar(ch);ch=fgetc(fp);}putchar('\n');//追加指定內(nèi)容ch=getchar();//從計算機終端(一般為鍵盤)輸入一個字符fp=fopen("G:\\CarTest.txt","a");

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

ch=getchar();}

fclose(fp);}項目九任務(wù)一C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉典型案例1打開某輛汽車E00898.txt的文檔,讀取文檔信息并顯示,關(guān)閉該文檔。任務(wù)過程:1.新建文檔2.使用fopen打開文件3.對文檔進行操作

4.Fcolse關(guān)閉文件項目九任務(wù)一C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉典型案例1打開某輛汽車E00898.txt的文檔,讀取文檔信息并顯示,關(guān)閉該文檔。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);}項目九任務(wù)一C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉典型案例2打開某輛汽車E00898.text的文檔,讀取文檔信息并追加信息,關(guān)閉該文檔。任務(wù)過程:1.新建文檔2.使用fopen打開文件3.對文檔進行操作

4.Fcolse關(guān)閉文件項目九任務(wù)一C語言程序設(shè)計

(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的文檔,讀取文檔信息并追加信息,關(guān)閉該文檔。THANKS!C語言程序設(shè)計項目八項目九0102

汽車文本數(shù)據(jù)的讀與寫汽車文件數(shù)據(jù)塊的讀與寫知識儲備C語言程序設(shè)計

(2)行進中的分叉路口任務(wù)目標(biāo)

從鍵盤輸入汽車的信息,把它們保存到car.txt中控制臺輸入文件存儲知識儲備C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉一、二進制文件二進制文件是使用

ASCII及擴展ASCII字符編寫的數(shù)據(jù)或程序指令的文件。如果一個文件專門用于存儲文本字符的數(shù)據(jù),稱之為文本文件。知識儲備C語言程序設(shè)計

二、函數(shù)示例1:閱讀以下的程序,理解通過指針變量訪問普通變量的方法fwrite函數(shù)

調(diào)用的一般形式為:fwrite(buffer,size,count,fp);其中:buffer是一個指針(地址),表示存放輸出數(shù)據(jù)的首地址,size是數(shù)據(jù)塊的字節(jié)數(shù),count是數(shù)據(jù)塊的塊數(shù),fp是文件指針。如果函數(shù)調(diào)用成功,返回count的值。

fread函數(shù)

調(diào)用的一般形式為:fread(buffer,size,count,fp);其中:buffer是一個指針(地址),表示存放輸入數(shù)據(jù)的首地址,size是數(shù)據(jù)塊的字節(jié)數(shù),count是數(shù)據(jù)塊的塊數(shù),fp是文件指針。如果函數(shù)調(diào)用成功,返回count的值。任務(wù)分析與實踐C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉任務(wù)分析1.打開文件2.定義變量3.進行文件操作

4.關(guān)閉(保存)文件從鍵盤輸入汽車的信息,把它們保存到car.txt中任務(wù)分析與實踐C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉程序代碼//汽車結(jié)構(gòu)體structcar{ charcarname[20];charprice[10];};//汽車數(shù)組structcarc[N];//保存文件函數(shù)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();}輸入數(shù)據(jù)到結(jié)構(gòu)體數(shù)組c[]將結(jié)構(gòu)體數(shù)組c[]保存到文件中THANKS!C語言程序設(shè)計項目八項目九0102

汽車文本數(shù)據(jù)的讀與寫汽車文件數(shù)據(jù)塊的讀與寫項目九任務(wù)二C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉典型案例1打開某輛汽車car.txt的文檔,讀取文檔信息并顯示,關(guān)閉該文檔。任務(wù)過程:1.新建文檔2.使用fopen打開文件3.對文檔進行操作

4.Fcolse關(guān)閉文件項目九任務(wù)二C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉典型案例1打開某輛汽車car.txt的文檔,讀取文檔信息并顯示,關(guān)閉該文檔。#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);

}讀取數(shù)據(jù)到結(jié)構(gòu)體數(shù)組c[]打印結(jié)構(gòu)體數(shù)組c[]的值項目九任務(wù)二C語言程序設(shè)計

(2)行進中的分叉路口(1)樹生長程中的分叉典型案例2打開某輛汽車car.txt的文檔,讀取文檔信息并修改信息,關(guān)閉該文檔。任務(wù)過程:1.新建文檔2.使用fopen打開文件3.對文檔進行操作

4.Fcolse關(guān)閉文件項目九任務(wù)二C語言程序設(shè)計

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

//定義車輛結(jié)構(gòu)體structcar{intcarID;charname[9];intprice;};//定義汽車數(shù)組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. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論