2024-2025-1 20241415 《计算机基础与程序设计》第十三周学习总结
2024-2025-1 20241415 《计算机基础与程序设计》第十三周学习总结
作业信息
这个作业属于哪个课程 | 2024-2025-1-计算机基础与程序设计 |
---|---|
这个作业要求在哪里 | 2024-2025-1计算机基础与程序设计第十三周作业 |
这个作业的目标 | 复习知识,巩固所学 |
作业正文 | https://www.cnblogs.com/zhaoshaoning/p/18621911 |
教材学习内容总结
以下是一份关于《C 语言程序设计》第十二章常见内容(通常是文件操作相关)的总结示例:
《C 语言程序设计》第十二章总结
一、文件概述
- 文件是存储在外部介质(如磁盘)上数据的集合,可以是程序文件(源程序、目标程序等)或数据文件(用于保存程序运行所需的输入输出数据)。
- C 语言把文件看作是一个字符(字节)的序列,即流式文件,根据数据的组织形式分为文本文件(以 ASCII 码形式存储字符)和二进制文件(以数据在内存中的存储形式原样存储)。
二、文件指针
- 文件指针是指向一个结构体类型 FILE 的指针变量,通过它可以访问文件的各种信息并进行文件操作。定义形式如:
FILE *fp;
,在使用文件之前需要先定义文件指针变量。
三、文件的打开与关闭
- 打开文件:使用
fopen
函数,其原型为FILE *fopen(const char *filename, const char *mode)
。其中filename
是要打开文件的文件名(包含路径),mode
是打开文件的模式,如 "r"(只读打开文本文件)、"w"(只写打开文本文件,若文件存在则清空内容,不存在则创建)、"a"(追加写入文本文件)、"rb"、"wb"、"ab"(对应二进制文件的操作模式)等。成功打开文件后返回指向该文件的文件指针,失败则返回 NULL。例如:fp = fopen("test.txt", "r");
- 关闭文件:使用
fclose
函数,fclose(fp)
用于关闭由fp
指向的文件,关闭成功返回 0,失败返回 EOF。及时关闭文件可避免数据丢失、释放系统资源等。
四、文件的读写操作
- 字符读写函数
fgetc
函数:从指定文件中读取一个字符,原型为int fgetc(FILE *stream)
,返回读取到的字符(以 ASCII 码值表示),若读到文件末尾或出错则返回 EOF。例如:ch = fgetc(fp);
fputc
函数:把一个字符写入指定文件,原型为int fputc(int c, FILE *stream)
,其中c
是要写入的字符,成功写入返回写入字符,失败返回 EOF。例如:fputc('A', fp);
- 字符串读写函数
fgets
函数:从文件中读取一个字符串,原型为char *fgets(char *s, int n, FILE *stream)
,s
是存储读取字符串的字符数组,n
规定读取的字符个数(包含 '\0'),它读取到换行符 '\n' 或读完n - 1
个字符时停止读取,并在字符串末尾添加 '\0'。例如:fgets(str, 100, fp);
fputs
函数:将一个字符串写入文件,原型为int fputs(const char *s, FILE *stream)
,s
是要写入的字符串,成功返回非负整数,失败返回 EOF。例如:fputs("Hello", fp);
- 格式化读写函数
fscanf
函数:从文件按指定格式读取数据,类似于scanf
函数,原型为int fscanf(FILE *stream, const char *format,...)
。例如:fscanf(fp, "%d %s", &num, str);
fprintf
函数:按指定格式将数据写入文件,类似于printf
函数,原型为int fprintf(FILE *stream, const char *format,...)
。例如:fprintf(fp, "%d %s", num, str);
- 数据块读写函数
fread
函数:从文件读取数据块到内存,原型为size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)
,ptr
是指向内存中存储数据块的指针,size
是每个数据块的字节数,nmemb
是数据块的个数,函数返回实际读取的数据块个数。例如:fread(buf, sizeof(int), 10, fp);
fwrite
函数:将内存中的数据块写入文件,原型为size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)
,参数意义与fread
类似,返回实际写入的数据块个数。例如:fwrite(buf, sizeof(int), 10, fp);
五、文件的定位
- rewind 函数:将文件指针重新定位到文件开头,原型为
void rewind(FILE *stream)
。例如:rewind(fp);
- ftell 函数:返回文件指针当前位置相对于文件开头的偏移量(以字节为单位),原型为
long ftell(FILE *stream)
。例如:pos = ftell(fp);
- fseek 函数:用于改变文件指针的位置,原型为
int fseek(FILE *stream, long offset, int whence)
。offset
是偏移量,whence
规定起始位置,可取 SEEK_SET(文件开头)、SEEK_CUR(当前位置)、SEEK_END(文件末尾)。例如:fseek(fp, 10L, SEEK_SET);
表示将文件指针从文件开头向后移动 10 个字节。
六、文件操作的错误检测
- C 语言提供了一些函数用于检测文件操作过程中的错误。
ferror
函数用于检测文件操作是否出错,若出错返回非 0 值,否则返回 0。clearerr
函数用于清除文件错误标志,使后续的文件操作能正常进行。例如:
if (ferror(fp)) {
printf("文件操作出错!\n");
clearerr(fp); // 清除错误标志
}
通过对第十二章的学习,掌握了 C 语言中文件操作的基本方法,能够实现对文件的创建、读写、定位以及错误处理等操作,从而可以编写具有数据持久化功能的程序,将程序运行过程中的数据保存到文件中以便后续使用或分析。
基于AI的学习