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