版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Lecture16
FileOperationsCProgrammingLanguageOutlineTypesofFilesFileOperationscreate/openfileread/writefileclosefileRandomAccessFileErrorHandlingWindowsFileSystemFileisasetofdatastoredontheexternalstoragewiththeformatofbinarynumbers.Fileisidentifiedbyauniquenamewithinadirectory.Fileoperationscreate/modify/delete/copyread/writeTypesofFilesclassifybyreadingformattextfile(ASCIIfile)readthedataoffile,andtranslateittocharactersbyASCIIencodingset,orotherencodingsets.binaryfilereadthedataoffileasthebinarydata.TypesofFilesclassifybydataformatsequenceaccessfilethedataoffilearestoredtogetherwithnowaytobreakthem.randomaccessfilethedataoffilearestoredwithsomespecificformatsothatyoucanfindsomedatabyindexorotherways.TypesofFilesclassifybymediaformatdevicefilenottherealfiles,justregardthedevicesasthefiletosimplifytheoperations.commonfilerealfileswithdataonthedisks.TwoConceptsStream:torepresentthedatasequenceflowtoandfromafileFilebuffer:areusedtoimprovetheefficiencyofthefileoperations.Datatoandfromfilewillbestoredonthefilebuffertemporallyforabetterperformancepurpose.ProcessofFileOperationscreate/openfileread/writefileclosefileAllaboveoperationsarecarriedoutbydifferentlibraryfunctions.FilePointerFilepointerisapointerpointstoafile.Alloperationsoffilewilluseit.Syntax:
FILE*Pointer_Name;
//needstdio.hOpen/CreateaFileusefunctionfopentoopen/createafile.Syntax:
FILE*fopen(File_Name,Option)Optionistosetthewayyouwilloperatethefile.
FILE*fp;fp=fopen(“a.txt”,“r”);Open/CreateaFileIfopenoperationfails,fopenreturnsNULLFILE*fp;fp=fopen(“a.txt”,“r”);if(fp==NULL){printf(“error:cannotopenfile!”);
……}Open/CreateaFileFile_Namecanbeundertheabsolutepath,orthecurrentpath.absolutepath:wholedirectorynameandfilename,suchas“D:\\test\\a.txt”currentpath:ifthefileisatthesamedirectoryoftheprogram,justusethefilename,suchas“a.txt”Open/CreateaFilefopenoptions“r” readonlymode“w” writeonlymode“a” appendonlymode“+” read/writeplus“t” textfileformatoperation“b” binaryfileformatoperationOpen/CreateaFileBydefaultfopenoptionswillregardfileasthetextfile.Ifyouwanttoopenfileasbinaryformat,combineread/writemodeandformatmodetogether.“r”or“rt” readtextfile“rb” readbinaryfileOpen/CreateaFileSomeRules“r”mode:ifthefiledosenotexist,fopenwillreturnNULL“w”mode:iffiledosenotexist,createthefileandopenitforwriting.Ifthefileexists,openandemptythefileforwriting.“a”mode:filemustexists,openthefileandappenddatatotheendofthefile.CloseaFilefunctionfcloseisusedtocloseafileSyntax:
intfclose(File_Pointer);Iffileisclosedsuccessfully,fclosereturns0,ifthereisaerror,itreturnothervalues.Example1CloseaFileCloseaopenedfileisveryimportant.Allthedatainthefilebufferwillbestoredproperlyduringtheclosing.Ifyoudonotclosefile,somedatamaybelost.Justclosethefileyouhaveopened,donottrytocloseotherfiles.SequenceAccessFileRead/writefilefromthestartpointofthefilebythesequenceorder.ThereisaFLAGtoindicatethecurrentread/writelocation.Therearelibraryfunctionstoread/writedataascharacter,string,orformattedblock.ReadCharactersFunction:
int
fgetc(file_pointer);Itreturnsthenextcharacterofstreamasanunsignedchar(convertedtoanint).ReadCharactersAftercallingfgetc,theread/writeFLAGwillautomaticallymovetothenextcharacter,soyoucankeepreadingthenextone.Attheendofatextfile,fgetcwillreturnaconstantEOF.Forbinaryfile,youneedtousefunctionfeof(fp)tochecktheendoffile.Returnnon-zerovaluemeansithasreachedtotheendofthefile.Example2WriteCharactersFunction:
intfputc(value_to_write,file_pointer);Ifwritingfileissuccessful,fputcwillreturnthewrittencharacter.OritwillreturnEOF.Example3,4,5ReadStringsFunction:
char*fgets(char_array,n,file_pointer);fgetsreadn-1charactersandputthemtochar_array,andthenadd‘\0’tothenextlocationautomatically.Itreturnstheaddressofthechar_array.ReadStringsThereadingwillstopifanewlineisencountered;thenewlineisincludedinthearray,whichisterminatedby’\0’.ThereadingwillstopifmeetingEOF.returnsNULLifendoffileorerroroccurs.Example6WriteStringsFunction:
intfputs(char_array,file_pointer);fputswritethestringstoredinchar_arraytothefile,‘\0’willnottobewritten.Itreturnsnon-negative,orEOFforanerror..Example7Read/WriteFormattedDataFunctions:intfscanf(file_pointer,format,values); intfprintf(file_pointer,format,values);Similarasreading/writingdatafrom/tokeyboard/screen.fscanfcanonlyreaddataasthesameformatthatfprintfhaswritten.Returnvalueisthenumbersofthedata.Example8Read/WriteDataBlockRead/writeablockdata,suchasarrays,structures.Functions:intfread(buffer,size,n,file_pointer); intfwrite(buffer,size,n,file_pointer);
Read/writesizebytesdataforntimesfromfiletobuffer,orfrombuffertofile.Read/WriteDataBlockThereturnvalueofthesetwoargumentsistheactualnumbersofdatathathavebeenreadorwrite.Theactualnumbersofdatamaylessthanrequirednumbersbecauseofreachingtotheendoffile.Example9RandomAccessFileYoucanread/writedataataspecificlocationfromafile.Beforedoingthat,youneedtomoveread/writeFLAGtothepoint.Funtion:intfseek(file_pointer,offset,init_point);MoveFLAGoffset(alongtypenumber)bytesfromtheinit_pointposition.Itreturnsannon-zerovalueonerrors.RandomAccessFileinit_point
isainteger,butnormallyweuseconstanti
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 预防校园欺凌主题班会模板
- 铁路信号基础
- 2026福建紫金矿冶测试技术有限公司人才社会招聘15人笔试备考试题及答案解析
- 2026年鼎和财产保险股份有限公司人员招聘考试模拟试题及答案
- 2026绵阳科技城发展投资(集团)有限公司招聘组织绩效等岗位人员11人考试参考题库及答案解析
- 2026云南昆明市延安医院面向社会招聘见习人员笔试参考题库及答案解析
- 2026年黑龙江中盟集团有限公司人员招聘考试模拟试题及答案
- 2026年甘肃财贸职业学院考核引进博士研究生14人考试备考题库及答案解析
- 2026延安大学咸阳医院护士招聘60人笔试备考题库及答案解析
- 2026广西南宁市江南区沙井卫生院招聘编外人员1人笔试备考题库及答案解析
- 本科经济学专业《计量经济学》教学设计(庞皓教材适用)
- 盆底重建手术护理要点
- DB6501∕T 080-2025 牛羊杂清洗规范
- 高考语文复习微专题之文言文游记类散文
- 泰森多边形课件
- T/CNSS 030-2024蛋白棒、能量棒和膳食纤维棒
- T/CECCEDA 1-2025企业管理创新体系要求及实施指南
- 资金统借统还管理办法
- 新编经济法教程
- 项目七婴幼儿道路交通伤害预防与处理姚丽娇课件
- 江苏省苏州市六区联考2024-2025学年八年级上学期期末考试物理试题(含答案)
评论
0/150
提交评论