《C语言课程设计》一第3章 文 件 类

简介: 本节书摘来自华章出版社《C语言课程设计》一书中的第3章,第3.0节,作者 刘博 董学文,更多章节内容可以访问云栖社区“华章计算机”公众号查看

第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所示。
image

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。

相关文章
|
1月前
|
C语言
C语言对象和类
C语言对象和类
16 0
|
3月前
|
C语言
C语言写元素类
C语言写元素类
22 0
|
3月前
|
C语言
C语言写整数类(Integer)
C语言写整数类(Integer)
24 0
|
5月前
|
C语言
【C语言课程设计】医院管理系统
【C语言课程设计】医院管理系统
99 0
|
4月前
|
存储
1.C语言题目---指针类(基础)
1.C语言题目---指针类(基础)
34 1
|
1月前
|
存储 文件存储 C语言
《C语言程序设计》课程设计 -- 火车票票务管理系统
《C语言程序设计》课程设计 -- 火车票票务管理系统
23 1
|
1月前
|
Java C语言 C++
C语言对象和类
C语言对象和类
|
2月前
|
算法 搜索推荐 程序员
C语言第二十三练——剩余类
C语言第二十三练——剩余类
24 0
|
3月前
|
存储 C语言 C++
C语言基础专题 - 存储类(编辑中)
C语言基础专题 - 存储类(编辑中)
21 0
|
4月前
|
存储 编译器 程序员
【新手解答1】深入探索 C 语言:变量名、形参 + 主调函数、被调函数 + 类和对象 + 源文件(.c 文件)、头文件(.h 文件)+ 库
【新手解答1】深入探索 C 语言:变量名、形参 + 主调函数、被调函数 + 类和对象 + 源文件(.c 文件)、头文件(.h 文件)+ 库
65 0