作业信息
这个作业属于哪个课程 | 2024-2025-1-计算机基础与程序设计 |
---|---|
这个作业要求在哪里 | https://www.cnblogs.com/rocedu/p/9577842.html#WEEK12 |
这个作业的目标 | 结构体和数据结构基础 文件操作 |
作业正文 | https://www.cnblogs.com/wchxx/p/18607077 |
教材学习内容总结
结构体(Structures)
-
结构体定义:
- 定义结构体使用
struct
关键字,后跟结构体名称和一对花括号,其中包含一系列声明,称为结构体的成员。 - 示例:
struct Student {char name[50];int age;float gpa; };
- 定义结构体使用
-
结构体变量的声明:
- 声明结构体变量可以直接使用结构体类型。
- 示例:
struct Student student1;
-
结构体数组:
- 声明结构体数组与普通数组类似,但需要指定结构体类型。
- 示例:
struct Student students[100];
-
结构体与函数:
- 将结构体作为参数传递给函数,需要在函数定义中指定结构体类型。
- 示例:
void printStudent(struct Student s) {printf("Name: %s, Age: %d, GPA: %.2f\n", s.name, s.age, s.gpa); }
-
指针与结构体:
- 使用指向结构体的指针可以访问和修改结构体成员。
- 示例:
struct Student *ptr = &student1; ptr->age = 20; // 使用箭头操作符访问成员
-
动态内存分配:
- 使用
malloc
分配结构体内存,并使用free
释放。 - 示例:
struct Student *dynamicStudent = malloc(sizeof(struct Student)); if (dynamicStudent != NULL) {dynamicStudent->age = 22; } free(dynamicStudent);
- 使用
-
嵌套结构体:
- 一个结构体可以作为另一个结构体的成员。
- 示例:
struct Address {char street[100];int pinCode; };struct Student {char name[50];struct Address homeAddress; };
-
结构体与链表:
- 使用结构体创建链表节点,包含数据和指向下一个节点的指针。
- 示例:
struct Node {int data;struct Node *next; };
文件(Files)
-
文件操作基础:
- 使用
fopen
打开文件,fclose
关闭文件。 - 示例:
FILE *file = fopen("example.txt", "w"); if (file == NULL) {perror("Error opening file");return; } fclose(file);
- 使用
-
文件指针:
FILE*
是指向文件的指针,用于文件操作。
-
文件打开模式:
- 模式包括 "r"(只读)、"w"(只写,文件会被截断)、"a"(追加)等。
- 示例:
FILE *file = fopen("example.txt", "r+");
-
字符和字符串的读写:
fgetc
读取一个字符,fputc
写入一个字符。fgets
读取一行,fputs
写入字符串。- 示例:
char ch = fgetc(file); fputs("Hello, World!", file); char buffer[100]; fgets(buffer, sizeof(buffer), file);
-
数据块的读写:
fread
和fwrite
用于读写数据块。- 示例:
int data[100]; fwrite(data, sizeof(int), 100, file); fread(data, sizeof(int), 100, file);
-
文件位置指针:
rewind
重置文件指针到文件开头,ftell
获取当前位置,fseek
移动文件指针。- 示例:
rewind(file); long position = ftell(file); fseek(file, position, SEEK_SET);
-
文件的错误检测:
ferror
检查文件操作是否出错,clearerr
清除错误标志。- 示例:
if (ferror(file)) {printf("Error occurred\n");clearerr(file); }
-
二进制文件操作:
- 使用 "rb"、"wb"、"ab"、"rb+" 等模式以二进制方式打开文件。
- 示例:
FILE *file = fopen("example.bin", "wb");
-
临时文件:
- 使用
tmpfile
创建临时文件,该文件在关闭时自动删除。 - 示例:
FILE *temp = tmpfile(); fwrite(data, sizeof(int), 100, temp); fclose(temp);
- 使用
基于AI的学习