这个作业属于哪个课程 | https://edu.cnblogs.com/campus/besti/2024-2025-1-CFAP( |
---|---|
这个作业要求在哪里 | https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14 |
这个作业的目标 | <学习《C语言程序设计》第13-14章并完成云班课测试> |
作业正文 | https://i.cnblogs.com/posts/edit |
教材学习内容总结
- 文件类型
- 文本文件:以ASCII码形式存储,便于阅读和编辑。
- 二进制文件:以二进制形式存储数据,更紧凑,常用于存储数值等。
- 文件指针
用 FILE * 类型定义,如 FILE *fp; ,通过它来操作文件,关联到具体文件。
- 打开文件
- 函数: fopen() ,例如 fp = fopen("文件名", "打开方式"); ,打开方式有 "r" (读)、 "w" (写,若存在覆盖)、 "a" (追加)等多种。
- 返回值:成功返回文件指针,失败返回 NULL 。
- 关闭文件
用 fclose(fp) 函数关闭,及时关闭可避免数据丢失等问题。
- 读写文件
- 字符读写: fgetc() 从文件读一个字符, fputc() 向文件写一个字符。
- 字符串读写: fgets() 读一行字符串, fputs() 写字符串到文件。
- 格式化读写:类似 scanf 和 printf 的功能,用 fscanf() 和 fprintf() 按格式读写文件内容。
- 块读写: fread() 按块读数据, fwrite() 按块写数据,常用于读写结构体等较大数据块。
- 文件定位
- 函数: fseek() 可移动文件指针位置,如 fseek(fp, 偏移量, 起始位置) ; ftell() 能获取当前文件指针位置; rewind() 可使文件指针回到开头。
- 文件结束判断
通过 feof() 函数,返回非零值表示到文件末尾,常用于循环中判断是否读完文件内容。
教材学习中的问题及解决过程
问题一
问:如果用 fopen 打开一个不存在的文件,且打开方式是 "r" (读),会出现什么情况?
答:会打开失败, fopen 函数会返回 NULL ,因为 "r" 方式是用于读取已存在的文件,不存在的文件无法按此方式打开进行读操作。
问题二
问:使用 fwrite 函数向二进制文件写入数据后,不关闭文件直接再次读取该文件里刚写入的数据可以吗?
答:不建议这样做。虽然有时候可能看似能读取到部分数据,但未关闭文件就进行读取可能会导致数据未完全正确写入磁盘(存在缓存等情况没及时刷新),从而读取到的数据可能不准确或者不完整,所以最好先使用 fclose 关闭文件,确保数据正常存储后再去读取文件内容。
基于AI的学习
学习进度条
代码行数(新增/累积) | 博客量(新增/累积) | 学习时间(新增/累积) | 重要成长 | |
---|---|---|---|---|
目标 | 5000行 | 30篇 | 400小时 | |
第一周 | 200/200 | 2/2 | 20/20 | |
第二周 | 300/500 | 2/4 | 18/38 | |
第三周 | 500/1000 | 3/7 | 22/60 | |
第四周 | 300/1300 | 2/9 | 30/90 |