版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八項(xiàng)目九01
02
汽車(chē)文本數(shù)據(jù)的讀與寫(xiě)汽車(chē)文件數(shù)據(jù)塊的讀與寫(xiě)引入:汽車(chē)數(shù)據(jù)的讀寫(xiě)
01行車(chē)數(shù)據(jù)存儲(chǔ)到本地SD卡讀取行車(chē)數(shù)據(jù)進(jìn)行處理知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口任務(wù)目標(biāo)
打開(kāi)某品牌汽車(chē)的參數(shù)文檔CarTest.txt,文件末尾添加報(bào)價(jià):1800k。知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉一、FILE類(lèi)型FILE類(lèi)型是由系統(tǒng)定義的一種結(jié)構(gòu)體類(lèi)型,專門(mén)用來(lái)描述文件的相關(guān)信息。VC系統(tǒng)中,F(xiàn)ILE類(lèi)型在“stdio.h”中定義如下:struct_iobuf{
char*_ptr;//文件輸入的下一個(gè)位置int_cnt;//當(dāng)前緩沖區(qū)的相對(duì)位置char*_base;//文件的起始位置int_flag;//文件狀態(tài)標(biāo)志int_file;
//文件的有效性驗(yàn)證int_charbuf;//檢查緩沖區(qū)狀況,如果無(wú)緩沖區(qū)則不讀取int_bufsiz;//緩沖區(qū)大小char*_tmpfname;//臨時(shí)文件名};typedefstruct_iobufFILE;知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
二、文件指針示例1:閱讀以下的程序,理解通過(guò)指針變量訪問(wèn)普通變量的方法文件指針定義的一般形式為:
FILE*文件指針變量名;
例如:FILE*fp;注意:必須調(diào)用fopen函數(shù)為文件指針fp和文件建立聯(lián)系,文件指針才指向打開(kāi)文件的入口地址,通過(guò)文件指針找到與它相關(guān)的文件。知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉三、文件的打開(kāi)fopen函數(shù)調(diào)用的一般形式為:FILE*fp;fp=fopen("文件名","打開(kāi)文件方式");示例:判斷文件是否打開(kāi)成功FILE*fp;if((fp=fopen("D:\\demo.txt","r")==NULL){
printf("Failtoopenfile!\n");exit(0);//退出程序(結(jié)束程序)}知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
四、打開(kāi)方式說(shuō)明打開(kāi)方式說(shuō)明"r"以“只讀”方式打開(kāi)文件。只允許讀取,不允許寫(xiě)入。文件必須存在,否則打開(kāi)失敗。"w"以“寫(xiě)入”方式打開(kāi)文件。如果文件不存在,那么創(chuàng)建一個(gè)新文件;如果文件存在,那么清空文件內(nèi)容(相當(dāng)于刪除原文件,再創(chuàng)建一個(gè)新文件)。"a"以“追加”方式打開(kāi)文件。如果文件不存在,那么創(chuàng)建一個(gè)新文件;如果文件存在,那么將寫(xiě)入的數(shù)據(jù)追加到文件的末尾(文件原有的內(nèi)容保留)。"r+"以“讀寫(xiě)”方式打開(kāi)文件。既可以讀取也可以寫(xiě)入,也就是隨意更新文件。文件必須存在,否則打開(kāi)失敗。"w+"以“寫(xiě)入/更新”方式打開(kāi)文件,相當(dāng)于w和r+疊加的效果。既可以讀取也可以寫(xiě)入,也就是隨意更新文件。如果文件不存在,那么創(chuàng)建一個(gè)新文件;如果文件存在,那么清空文件內(nèi)容(相當(dāng)于刪除原文件,再創(chuàng)建一個(gè)新文件)。"a+"以“追加/更新”方式打開(kāi)文件,相當(dāng)于a和r+疊加的效果。既可以讀取也可以寫(xiě)入,也就是隨意更新文件。如果文件不存在,那么創(chuàng)建一個(gè)新文件;如果文件存在,那么將寫(xiě)入的數(shù)據(jù)追加到文件的末尾(文件原有的內(nèi)容保留)。知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
五、關(guān)閉文件示例:fopen(fp)//文件操作fclose(fp);文件關(guān)閉fclose函數(shù)調(diào)用的一般形式為:fclose(文件指針);知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
六、其他函數(shù)fgetc函數(shù)——從指定的磁盤(pán)文件中讀一個(gè)字符,該磁盤(pán)文件必須是以讀或讀寫(xiě)方式打開(kāi)的。其一般調(diào)用形式為:ch=fgetc(fp);
fputc函數(shù)——把一個(gè)字符寫(xiě)到磁盤(pán)文件上去。其一般調(diào)用形式為:fputc(ch,fp);知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
七、示例#include<stdio.h>#include<stdlib.h>#defineN100intmain(){FILE*fp;charstr[N+1];//判斷文件是否打開(kāi)失敗if((fp=fopen("c:\\iii\\lll.txt","rt"))==NULL){puts("Failtoopenfile!");exit(0);}//循環(huán)讀取文件的每一行數(shù)據(jù)//從文件指針處讀取N-1個(gè)字符到str數(shù)值中while(fgets(str,N,fp)!=NULL){
printf("%s",str);}//操作結(jié)束后關(guān)閉文件fclose(fp);return0;}任務(wù)分析與實(shí)踐C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉任務(wù)分析分析:1.打開(kāi)文件2.定義變量3.進(jìn)行文件操作
4.關(guān)閉(保存)文件打開(kāi)文件CarTest.txt某品牌汽車(chē)的參數(shù)文檔,添加報(bào)價(jià):1800k。任務(wù)分析與實(shí)踐C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉程序代碼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();//從計(jì)算機(jī)終端(一般為鍵盤(pán))輸入一個(gè)字符fp=fopen("G:\\CarTest.txt","a");
for(;ch!='\n';){fputc(ch,fp);
ch=getchar();}
fclose(fp);}THANKS!C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八項(xiàng)目九01
02
汽車(chē)文本數(shù)據(jù)的讀與寫(xiě)汽車(chē)文件數(shù)據(jù)塊的讀與寫(xiě)引入:汽車(chē)數(shù)據(jù)的讀寫(xiě)
01行車(chē)數(shù)據(jù)存儲(chǔ)到本地SD卡讀取行車(chē)數(shù)據(jù)進(jìn)行處理項(xiàng)目九任務(wù)一C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口任務(wù)回顧
修改某品牌汽車(chē)的參數(shù)文檔,添加報(bào)價(jià):1800k。任務(wù)過(guò)程:1.使用fopen打開(kāi)文件2.對(duì)文檔進(jìn)行操作
3.Fcolse關(guān)閉文件任務(wù)分析與實(shí)踐C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉程序代碼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();//從計(jì)算機(jī)終端(一般為鍵盤(pán))輸入一個(gè)字符fp=fopen("G:\\CarTest.txt","a");
for(;ch!='\n';){fputc(ch,fp);
ch=getchar();}
fclose(fp);}項(xiàng)目九任務(wù)一C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例1打開(kāi)某輛汽車(chē)E00898.txt的文檔,讀取文檔信息并顯示,關(guān)閉該文檔。任務(wù)過(guò)程:1.新建文檔2.使用fopen打開(kāi)文件3.對(duì)文檔進(jìn)行操作
4.Fcolse關(guān)閉文件項(xiàng)目九任務(wù)一C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例1打開(kāi)某輛汽車(chē)E00898.txt的文檔,讀取文檔信息并顯示,關(guān)閉該文檔。voidmain(){FILE*fp;charch;if((fp=fopen("G:\\E00898.txt","r"))==NULL){printf("文件未成功打開(kāi)\n");exit(0);
}
ch=fgetc(fp);//讀取字符for(;ch!=EOF;){putchar(ch);//輸出字符ch=fgetc(fp);}putchar('\n');fclose(fp);}項(xiàng)目九任務(wù)一C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例2打開(kāi)某輛汽車(chē)E00898.text的文檔,讀取文檔信息并追加信息,關(guān)閉該文檔。任務(wù)過(guò)程:1.新建文檔2.使用fopen打開(kāi)文件3.對(duì)文檔進(jìn)行操作
4.Fcolse關(guān)閉文件項(xiàng)目九任務(wù)一C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例2voidmain(){FILE*fp;charch;if((fp=fopen("G:\\E00898.txt","r"))==NULL){printf("文件未成功打開(kāi)\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);}打開(kāi)某輛汽車(chē)E00898.text的文檔,讀取文檔信息并追加信息,關(guān)閉該文檔。THANKS!C語(yǔ)言程序設(shè)計(jì)項(xiàng)目八項(xiàng)目九0102
汽車(chē)文本數(shù)據(jù)的讀與寫(xiě)汽車(chē)文件數(shù)據(jù)塊的讀與寫(xiě)知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口任務(wù)目標(biāo)
從鍵盤(pán)輸入汽車(chē)的信息,把它們保存到car.txt中控制臺(tái)輸入文件存儲(chǔ)知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉一、二進(jìn)制文件二進(jìn)制文件是使用
ASCII及擴(kuò)展ASCII字符編寫(xiě)的數(shù)據(jù)或程序指令的文件。如果一個(gè)文件專門(mén)用于存儲(chǔ)文本字符的數(shù)據(jù),稱之為文本文件。知識(shí)儲(chǔ)備C語(yǔ)言程序設(shè)計(jì)
二、函數(shù)示例1:閱讀以下的程序,理解通過(guò)指針變量訪問(wèn)普通變量的方法fwrite函數(shù)
調(diào)用的一般形式為:fwrite(buffer,size,count,fp);其中:buffer是一個(gè)指針(地址),表示存放輸出數(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是一個(gè)指針(地址),表示存放輸入數(shù)據(jù)的首地址,size是數(shù)據(jù)塊的字節(jié)數(shù),count是數(shù)據(jù)塊的塊數(shù),fp是文件指針。如果函數(shù)調(diào)用成功,返回count的值。任務(wù)分析與實(shí)踐C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉任務(wù)分析1.打開(kāi)文件2.定義變量3.進(jìn)行文件操作
4.關(guān)閉(保存)文件從鍵盤(pán)輸入汽車(chē)的信息,把它們保存到car.txt中任務(wù)分析與實(shí)踐C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉程序代碼//汽車(chē)結(jié)構(gòu)體structcar{ charcarname[20];charprice[10];};//汽車(chē)數(shù)組structcarc[N];//保存文件函數(shù)voidsave(){inti;FILE*fp;fp=fopen("G:\\car.txt","w");for(i=0;i<N;i++)//將N個(gè)車(chē)輛信息寫(xiě)入文件
if(fwrite(&c[i],sizeof(structcar),1,fp)!=1){printf("文件寫(xiě)入錯(cuò)誤!\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語(yǔ)言程序設(shè)計(jì)項(xiàng)目八項(xiàng)目九0102
汽車(chē)文本數(shù)據(jù)的讀與寫(xiě)汽車(chē)文件數(shù)據(jù)塊的讀與寫(xiě)項(xiàng)目九任務(wù)二C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例1打開(kāi)某輛汽車(chē)car.txt的文檔,讀取文檔信息并顯示,關(guān)閉該文檔。任務(wù)過(guò)程:1.新建文檔2.使用fopen打開(kāi)文件3.對(duì)文檔進(jìn)行操作
4.Fcolse關(guān)閉文件項(xiàng)目九任務(wù)二C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例1打開(kāi)某輛汽車(chē)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("文件讀取錯(cuò)誤!\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[]的值項(xiàng)目九任務(wù)二C語(yǔ)言程序設(shè)計(jì)
(2)行進(jìn)中的分叉路口(1)樹(shù)生長(zhǎng)程中的分叉典型案例2打開(kāi)某輛汽車(chē)car.txt的文檔,讀取文檔信息并修改信息,關(guān)閉該文檔。任務(wù)過(guò)程:1.新建文檔2.使用fopen打開(kāi)文件3.對(duì)文檔進(jìn)行操作
4.Fcolse關(guān)閉文件項(xiàng)目九任務(wù)二C語(yǔ)言程序設(shè)計(jì)
典型案例2#include<stdio.h>#include<stdlib.h>#defineN3
//定義車(chē)輛結(jié)構(gòu)體structcar{intcarID;charname[9];intprice;};//定義汽車(chē)數(shù)組structcarc[N];
voidread(){
inti;FILE*fp;
if((fp=fopen("G:\\car.txt","rb"))==NULL){printf("文件未成功打開(kāi)!\n");exit(0);}for(i=0;i<N;i++)if(fread(&c[i],sizeof(structcar),1,fp)!=1){printf("文件讀取錯(cuò)誤!\n");break;}
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 事業(yè)單位新型聘用協(xié)議2024版模板版
- 樂(lè)器買(mǎi)賣(mài)合同 集合3篇
- 二零二五年高性能混凝土施工技術(shù)勞務(wù)分包合同范本3篇
- 二零二五年度版權(quán)許可合同:網(wǎng)絡(luò)游戲著作權(quán)授權(quán)2篇
- 2025年度不動(dòng)產(chǎn)房產(chǎn)證購(gòu)房合同附帶房地產(chǎn)稅收減免服務(wù)協(xié)議3篇
- 個(gè)性化2024年事故一次性補(bǔ)償合同版B版
- 二零二五版環(huán)境工程實(shí)習(xí)生實(shí)習(xí)勞動(dòng)合同書(shū)2篇
- 專項(xiàng)產(chǎn)品購(gòu)銷(xiāo)協(xié)議樣本版B版
- 泰州學(xué)院《教育研究方法(量化)》2023-2024學(xué)年第一學(xué)期期末試卷
- 2024建筑施工合同示范文本范文
- 巖土工程勘察課件0巖土工程勘察
- 《腎上腺腫瘤》課件
- 2024-2030年中國(guó)典當(dāng)行業(yè)發(fā)展前景預(yù)測(cè)及融資策略分析報(bào)告
- 《乘用車(chē)越野性能主觀評(píng)價(jià)方法》
- 幼師個(gè)人成長(zhǎng)發(fā)展規(guī)劃
- 2024-2025學(xué)年北師大版高二上學(xué)期期末英語(yǔ)試題及解答參考
- 批發(fā)面包采購(gòu)合同范本
- 乘風(fēng)化麟 蛇我其誰(shuí) 2025XX集團(tuán)年終總結(jié)暨頒獎(jiǎng)盛典
- 2024年大數(shù)據(jù)分析公司與中國(guó)政府合作協(xié)議
- 一年級(jí)數(shù)學(xué)(上)計(jì)算題專項(xiàng)練習(xí)匯編
- 中醫(yī)基礎(chǔ)理論課件
評(píng)論
0/150
提交評(píng)論