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的学习




posted @ 2024-12-22 11:01  雾岛岛岛  阅读(0)  评论(0编辑  收藏  举报