2024-2025-1 20241319 《计算机基础与程序设计》第十二周学习总结

作业信息

这个作业属于哪个课程 2024-2025-1-计算机基础与程序设计
这个作业要求在哪里 https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12
这个作业的目标 结构体和数据结构基础 文件操作
作业正文 https://www.cnblogs.com/wchxx/p/18607077

教材学习内容总结

结构体(Structures)

  1. 结构体定义

    • 定义结构体使用 struct 关键字,后跟结构体名称和一对花括号,其中包含一系列声明,称为结构体的成员。
    • 示例:
      struct Student {
          char name[50];
          int age;
          float gpa;
      };
      
  2. 结构体变量的声明

    • 声明结构体变量可以直接使用结构体类型。
    • 示例:
      struct Student student1;
      
  3. 结构体数组

    • 声明结构体数组与普通数组类似,但需要指定结构体类型。
    • 示例:
      struct Student students[100];
      
  4. 结构体与函数

    • 将结构体作为参数传递给函数,需要在函数定义中指定结构体类型。
    • 示例:
      void printStudent(struct Student s) {
          printf("Name: %s, Age: %d, GPA: %.2f\n", s.name, s.age, s.gpa);
      }
      
  5. 指针与结构体

    • 使用指向结构体的指针可以访问和修改结构体成员。
    • 示例:
      struct Student *ptr = &student1;
      ptr->age = 20; // 使用箭头操作符访问成员
      
  6. 动态内存分配

    • 使用 malloc 分配结构体内存,并使用 free 释放。
    • 示例:
      struct Student *dynamicStudent = malloc(sizeof(struct Student));
      if (dynamicStudent != NULL) {
          dynamicStudent->age = 22;
      }
      free(dynamicStudent);
      
  7. 嵌套结构体

    • 一个结构体可以作为另一个结构体的成员。
    • 示例:
      struct Address {
          char street[100];
          int pinCode;
      };
      
      struct Student {
          char name[50];
          struct Address homeAddress;
      };
      
  8. 结构体与链表

    • 使用结构体创建链表节点,包含数据和指向下一个节点的指针。
    • 示例:
      struct Node {
          int data;
          struct Node *next;
      };
      

文件(Files)

  1. 文件操作基础

    • 使用 fopen 打开文件,fclose 关闭文件。
    • 示例:
      FILE *file = fopen("example.txt", "w");
      if (file == NULL) {
          perror("Error opening file");
          return;
      }
      fclose(file);
      
  2. 文件指针

    • FILE* 是指向文件的指针,用于文件操作。
  3. 文件打开模式

    • 模式包括 "r"(只读)、"w"(只写,文件会被截断)、"a"(追加)等。
    • 示例:
      FILE *file = fopen("example.txt", "r+");
      
  4. 字符和字符串的读写

    • fgetc 读取一个字符,fputc 写入一个字符。
    • fgets 读取一行,fputs 写入字符串。
    • 示例:
      char ch = fgetc(file);
      fputs("Hello, World!", file);
      char buffer[100];
      fgets(buffer, sizeof(buffer), file);
      
  5. 数据块的读写

    • freadfwrite 用于读写数据块。
    • 示例:
      int data[100];
      fwrite(data, sizeof(int), 100, file);
      fread(data, sizeof(int), 100, file);
      
  6. 文件位置指针

    • rewind 重置文件指针到文件开头,ftell 获取当前位置,fseek 移动文件指针。
    • 示例:
      rewind(file);
      long position = ftell(file);
      fseek(file, position, SEEK_SET);
      
  7. 文件的错误检测

    • ferror 检查文件操作是否出错,clearerr 清除错误标志。
    • 示例:
      if (ferror(file)) {
          printf("Error occurred\n");
          clearerr(file);
      }
      
  8. 二进制文件操作

    • 使用 "rb"、"wb"、"ab"、"rb+" 等模式以二进制方式打开文件。
    • 示例:
      FILE *file = fopen("example.bin", "wb");
      
  9. 临时文件

    • 使用 tmpfile 创建临时文件,该文件在关闭时自动删除。
    • 示例:
      FILE *temp = tmpfile();
      fwrite(data, sizeof(int), 100, temp);
      fclose(temp);
      

基于AI的学习





posted @ 2024-12-14 19:10  20241319吴辰曦  阅读(7)  评论(0编辑  收藏  举报