版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能照明管理系統(tǒng)方案
- 幼兒園教師崗前培訓(xùn)計劃書
- 醫(yī)生就業(yè)合同協(xié)議書
- N1-Boc-2-2-iminodiethylamine-生命科學(xué)試劑-MCE
- 音樂基礎(chǔ)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- Mupirocin-lithium-Standard-生命科學(xué)試劑-MCE
- 基于C#的WinForm程序設(shè)計學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 光學(xué)學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- MIP-1095-RPS-001-生命科學(xué)試劑-MCE
- 傳染病上報制度
- 陳皮倉儲合同模板例子
- 2024年山西省中考地理試題含解析
- 2024-2025學(xué)年滬教版小學(xué)四年級上學(xué)期期中英語試卷及解答參考
- DB23T 3844-2024煤礦地區(qū)地震(礦震)監(jiān)測臺網(wǎng)技術(shù)要求
- 《阿凡達》電影賞析
- 火災(zāi)逃生自救消防安全知識培訓(xùn)課件
- DB42-T 2286-2024 地鐵冷卻塔衛(wèi)生管理規(guī)范
- 合作伙伴合同協(xié)議書范文5份
- 個人生涯發(fā)展展示
- 2024年基金應(yīng)知應(yīng)會考試試題及答案
- 人教版(PEP)五年級英語上冊 unit 4《What can you do》A let's learn課件
評論
0/150
提交評論