版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C語言程序設(shè)計項目八項目九01
02
汽車文本數(shù)據(jù)的讀與寫汽車文件數(shù)據(jù)塊的讀與寫引入:汽車數(shù)據(jù)的讀寫
01行車數(shù)據(jù)存儲到本地SD卡讀取行車數(shù)據(jù)進行處理知識儲備C語言程序設(shè)計
(2)行進中的分叉路口任務(wù)目標
打開某品牌汽車的參數(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;//當前緩沖區(qū)的相對位置char*_base;//文件的起始位置int_flag;//文件狀態(tài)標志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)容(相當于刪除原文件,再創(chuàng)建一個新文件)。"a"以“追加”方式打開文件。如果文件不存在,那么創(chuàng)建一個新文件;如果文件存在,那么將寫入的數(shù)據(jù)追加到文件的末尾(文件原有的內(nèi)容保留)。"r+"以“讀寫”方式打開文件。既可以讀取也可以寫入,也就是隨意更新文件。文件必須存在,否則打開失敗。"w+"以“寫入/更新”方式打開文件,相當于w和r+疊加的效果。既可以讀取也可以寫入,也就是隨意更新文件。如果文件不存在,那么創(chuàng)建一個新文件;如果文件存在,那么清空文件內(nèi)容(相當于刪除原文件,再創(chuàng)建一個新文件)。"a+"以“追加/更新”方式打開文件,相當于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ù)目標
從鍵盤輸入汽車的信息,把它們保存到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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院老人健康監(jiān)測人員職業(yè)發(fā)展規(guī)劃制度
- 世界讀書日主題班會課件
- 2024年特色調(diào)味品全國總經(jīng)銷采購協(xié)議3篇
- 新疆兵團連隊房屋買賣合同(2篇)
- 東南大學(xué)建筑結(jié)構(gòu)設(shè)計課件-單層排 架建筑
- 2024年版房屋建筑施工承包協(xié)議版
- 2025年陜西從業(yè)資格證貨運考試答案
- 《生產(chǎn)損失分析》課件
- 2025年哈爾濱貨運從業(yè)資格考試模擬考試題庫答案解析
- 2024年委托反擔保合同模板-項目投資風(fēng)險控制協(xié)議3篇
- 出租房屋安全檢查制度模版(2篇)
- 《森林防火安全教育》主題班會 課件
- 漏洞修復(fù)策略優(yōu)化
- 手術(shù)安全培訓(xùn)
- 乘風(fēng)化麟 蛇我其誰 2025XX集團年終總結(jié)暨頒獎盛典
- 車間生產(chǎn)現(xiàn)場5S管理基礎(chǔ)知識培訓(xùn)課件
- 2024七年級數(shù)學(xué)上冊第4章相交線與平等線項目學(xué)習(xí)2包裝中的智慧習(xí)題課件新版華東師大版
- 2024年同等學(xué)力申碩英語考試真題
- 文書模板-《公司與村集體合作種植協(xié)議書》
- 碼頭安全生產(chǎn)知識培訓(xùn)
- 供貨保證措施以及應(yīng)急保障措施
評論
0/150
提交評論