《C语言课程设计》一第3章 文 件 类
第3章 文 件 類
文件可分為文本文件和二進(jìn)制文件兩種。文本文件可用來保存字符,文件中的字節(jié)是字符的編碼,源文件是文本文件。二進(jìn)制文件可用來保存可執(zhí)行文件,文件中的字節(jié)是機(jī)器指令或數(shù)據(jù)編碼。
C語言程序有3個(gè)預(yù)定義的文本流在程序執(zhí)行時(shí)默認(rèn)打開:標(biāo)準(zhǔn)輸入(stdin)、標(biāo)準(zhǔn)輸出(stdout)和標(biāo)準(zhǔn)錯(cuò)誤(stderr)。
文件的讀寫屬于I/O操作。FILE類型保存和文件有關(guān)的信息,文件的打開操作在內(nèi)存中分配一個(gè)FILE類型并將其指針返回。大多數(shù)I/O函數(shù)都接受一個(gè)指向FILE類型的指針作為參數(shù),標(biāo)準(zhǔn)I/O庫函數(shù)在頭文件stdio.h中聲明。常用的I/O函數(shù)有:
FILE fopen(const char filename, const char mode) 函數(shù):用來打開文件流,接受文件名filename和打開模式mode兩個(gè)字符串參數(shù),返回一個(gè)FILE 類型的指針。若打開文件時(shí)遇到錯(cuò)誤,則fopen函數(shù)返回null指針。fopen常用打開模式如表 3-1所示。
int fclose(FILE *stream) 函數(shù):用來關(guān)閉一個(gè)打開的流stream并清除其所有內(nèi)部數(shù)據(jù)緩沖區(qū)。如關(guān)閉時(shí)遇到錯(cuò)誤,則返回EOF,否則返回0。fopen和fclose函數(shù)通常成對使用。
int fgetc(FILE *stream) 函數(shù):從流stream中讀取下一個(gè)字符,并把它作為一個(gè)int類型返回。若發(fā)生錯(cuò)誤或已經(jīng)位于文件尾,函數(shù)返回EOF。
int fputc(int c, FILE stream) 函數(shù):把字符c寫入流stream的當(dāng)前位置,并將寫入值按int類型返回。若發(fā)生錯(cuò)誤,函數(shù)返回EOF。
int ungetc(int c, FILE *stream) 函數(shù):將字符c壓回輸入流stream,當(dāng)下次讀取流stream時(shí)會讀取先前被壓入的字符。若多次調(diào)用ungetc函數(shù)壓入字符,當(dāng)下次讀取流stream時(shí)先前壓入的字符按與壓入相反的順序讀取。若函數(shù)調(diào)用成功,則返回被壓入的字符c;若函數(shù)調(diào)用失敗,則返回EOF。
char fgets(char s, int n, FILE *stream) 函數(shù):三個(gè)參數(shù)為指向字符數(shù)組起始位置的指針s、計(jì)數(shù)值n和輸入流stream。函數(shù)從輸入流stream讀取字符到數(shù)組,直到遇到換行符、文件尾或未遇到換行符和文件尾但讀取了n-1個(gè)字符。讀取完畢后,數(shù)組中已讀取的字符后會自動添加一個(gè)結(jié)束符‘0’。若因讀取到換行符而結(jié)束,換行符也存儲在數(shù)組中,且在自動添加的結(jié)束符‘0’之前。函數(shù)的返回值為指向字符數(shù)組起始位置的指針s,當(dāng)讀取任何字符之前就遇到文件結(jié)束符或錯(cuò)誤時(shí),返回null指針。
int fscanf( FILE stream, const char format, ... ) 函數(shù):對格式化的輸入文本進(jìn)行解析,從第一個(gè)輸入流參數(shù)stream中讀取字符,根據(jù)格式控制字符串參數(shù)對字符序列進(jìn)行轉(zhuǎn)換后存儲到指針?biāo)付ǖ膶ο笾小?br />int fprintf( FILE stream, const char format, ... ) 函數(shù):根據(jù)格式控制字符串參數(shù)轉(zhuǎn)換字符,將其輸出給第一個(gè)參數(shù)stream所指定的流。
size_t fread(void ptr, size_t size, size_t count, FILE stream) 函數(shù):可用來讀取二進(jìn)制文件,從流stream讀取最多count個(gè)大小為size的元素到指針ptr指向的數(shù)組。fread函數(shù)最多讀取count個(gè)元素,并返回其實(shí)際讀取的元素個(gè)數(shù),故當(dāng)讀到文件尾時(shí),返回值可能小于count。若遇到錯(cuò)誤,則返回0。
size_t fwrite(const void ptr, size_t size, size_t count, FILE stream) 函數(shù):可用來寫入二進(jìn)制文件,將指針ptr指向的數(shù)組中最多count個(gè)大小為size的元素寫入流stream。fwrite函數(shù)最多寫入count個(gè)元素,并返回實(shí)際寫入的元素個(gè)數(shù)。除非出現(xiàn)錯(cuò)誤,否則函數(shù)的返回值與count相同。
int remove(const char *filename)函數(shù):刪除filename文件。
int rename(const char oldname, const char newname)函數(shù):把oldname的文件名修改為newname。
總結(jié)
以上是生活随笔為你收集整理的《C语言课程设计》一第3章 文 件 类的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 产品经理第七章:互联网产品团队
- 下一篇: 如何从零构建实时的个性化推荐系统?