首页 > 编程语言 >2023-2024-1 20231306 《计算机基础与程序设计》第十四周学习总结

2023-2024-1 20231306 《计算机基础与程序设计》第十四周学习总结

时间:2023-12-31 20:22:18浏览次数:34  
标签:文件 读取 二进制 400 20231306 2024 文本文件 file 2023

作业信息

这个作业属于哪个课程 2023-2024-1-计算机基础与程序设计
这个作业要求在哪里 2023-2024-1计算机基础与程序设计第十四周作业
这个作业的目标 参考本周学习资源、自学教材《C语言程序设计》第13章并完成云班课测试
作业正文

教材学习内容总结

《C语言程序设计》——第13章 文件操作:

  1. 二进制文件和文本文件
  • 二进制文件:
    以二进制形式存储数据,即使用0和1的组合。 包含任意数据,包括图像、音频、视频、可执行代码等。 通常不可读,因为数据以机器可执行的形式存储。由计算机硬件直接处理,不需要解释器或编译器。可执行程序、图像文件(JPEG、PNG)、音频文件(MP3)、视频文件(MP4)等都属于二进制文件。

  • 文本文件:
    以字符的形式存储数据,使用字符编码(例如ASCII、UTF-8)。包含文本信息,如文档、配置文件、源代码等。通常是可读的,但需要解释器或编译器来处理,因为数据需要被解释为文本。文本文件(TXT)、源代码文件(C、Java)、配置文件(INI、XML)、网页文件(HTML)等都属于文本文件。

  • 比较:
    二进制文件适用于存储任意类型的数据,但通常不易读取。文本文件适用于存储文本信息,易于读取和编辑。在二进制文件中,数据的格式通常由程序来解释。文本文件通常可以由文本编辑器直接编辑。当存储文本信息时,选择文本文件更为合适。当存储图像或音频等二进制数据时,选择二进制文件更为恰当。

  • 文本文件中的每一个数字都单独占用一个字节的存储空间。而二进制文件则是把整个数字作为一个二进制数来存储的,并非数值的每一位数字都占用单独的存储空间。

  1. 文件的打开和关闭
  • 代码示例:

include <stdio.h>

int main() {
// 文件指针
FILE *file;

// 打开文件(写入模式,如果不存在则创建,如果存在则截断为空)
file = fopen("example.txt", "w");

//检查文件是否成功打开
if (file == NULL) {
printf("无法打开文件\n");
return 1;
}

// 关闭文件
fclose(file);

return 0;
}

  • 解释:
    "r": 只读方式打开文件。
    "w": 只写方式打开文件,如果文件存在则截断为零长度,如果文件不存在则创建。
    "a": 追加写方式打开文件,如果文件不存在则创建。
    "r+": 读写方式打开文件。
    "w+": 读写方式打开文件,如果文件存在则截断为零长度,如果文件不存在则创建。
    "a+": 读写方式打开文件,如果文件不存在则创建,写入的数据追加到文件末尾。

  • 按字符读写文件

  1. 函数fgetc()用于从一个以只读或读写方式打开的文件上读字符。
  2. 函数fputc()用于将一个字符写到一个文件上。
  3. 函数feof()用于检查是否到达文件末尾,当文件位置指针指向文件结束符时,返回非0值,否则返回0值。

代码示例:

include <stdio.h>

int main() {
FILE *file;
char ch;

// 打开文件(读取模式)
file = fopen("example.txt", "r");

if (file == NULL) {
printf("无法打开文件\n");
return 1;
}

// 读取文件内容
while (!feof(file)) {
ch = fgetc(file);

// 检查是否到达文件末尾
if (!feof(file)) {
printf("%c", ch);
}
}

// 关闭文件
fclose(file);

return 0;
}
需要注意的是,虽然 feof 可以用于检查文件是否到达末尾,但在很多情况下,更常见的是使用其他文件读取函数(如 fread、fgets、fscanf)的返回值来判断是否已经到达文件末尾。 feof 的主要用途之一是在使用 feof 和其他文件读取函数的组合时,确保正确地处理文件读取的边界条件。

  • 按格式读写文件
  1. fprintf(file, "%s %d %f\n", "Hello", 123, 3.14); 将字符串、整数和浮点数按照指定的格式写入文件。
  2. fscanf(file, "%s %d %f", str, &num, &decimal); 从文件中按照指定的格式读取字符串、整数和浮点数。
  3. fwrite()
    fwrite 用于将数据块从内存写入文件。它返回实际写入的数据块数量。
    代码示例:

//向文件写入整数数组
int numbers[] = {1, 2, 3, 4, 5};
FILE *file = fopen("data.bin", "wb");
fwrite(numbers, sizeof(int), 5, file);
fclose(file);
4. fread()
fread 用于从文件读取数据块到内存。它返回实际读取的数据块数量。
代码示例:

//向文件写入整数和字符串
FILE *file = fopen("output.txt", "w");
fprintf(file, "Integer: %d, String: %s\n", 42, "Hello");
fclose(file);

基于AI的学习

代码调试中的问题和解决过程

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 200/200 2/2 20/20
------- -------- -----
第二周 200/400 2/4
第三周 200/600 3/7
第四周 100/700 2/9
第五周 200/900 1/ 10
第六周 300/1200 1/11
第七周 400/1600 1/12
第八周 500/2100 1/13
第九周 500/2600 3/16
第十周 400/3000 1/17
第十一周 400/3400 1/18
第十二周 400/3800 2/20
第十三周 400/4200 6/26
第十四周 400/4600 1/27

标签:文件,读取,二进制,400,20231306,2024,文本文件,file,2023
From: https://www.cnblogs.com/zwywuhu/p/17937880

相关文章

  • 2023-2024-1 20231402《计算机基础与程序设计》第十四周学习总结
    2023-2024-120231402《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十四周作业这个作业的目标自学《C语言程序设计》第13章作业正文https://w......
  • codeforces比赛(3):codeforces good_bye_2023
    A、2023跳转原题点击此:A题地址1、题目大意  在一个乘积可能等于2023的数组a中去掉了k个数,得到新的长度为n的b数列。请你输出k个数,使得这k个数与b数列相乘为2023.如果不存在则输出No。2、题目解析  因为这道题的n和k都是不超过5,所以我们只需要算出b数组的乘积是否是2023的......
  • 2023 年度总结
    本来想写个钓鱼博跑路的,结果还是认真写了(x不会写编年体。记性不好。你确定你的记忆空间是欧几里得空间吗?学习可能这个标题也不准了。不过从前写国别体内容的人大部分也不把内容写准,都无所谓了。回来吧BOBO(后省略若干行感觉CNOI系列有点如履薄冰啊,不过生活还是愉快的。文......
  • 2023-2024-1 20231312 《计算机基础与程序设计》第14周学习总结
    作业信息这个作业属于哪个课程<班级的链接>2023-2024-1-计算机基础与程序设计|-这个作业要求在哪里<作业要求链接>2023-2024-1计算机基础与程序设计第6周作业|这个作业的目标《C语言程序设计》第13章|作业正文作业链接教材学习内容总结《C》第十三章文......
  • 2023年简单列表式年度总结
     工作方面,了解到文档传承的迫切性。了解到SOP的重要性。了解到MVP的重要性。采用了一些敏捷开发技巧,但是不够系统。了解到异步编程和微服务的威力,也知道一些治理难度。尝试了事件流机制架构。理财方面:中了至少两次新股和两个新债,主要在年底中的。整体股市盈利不错10......
  • 2023-2024-1 20231407陈原第计算机科学概论与C语言程序设计第十四周学习总结
    这个作业属于哪里计算机科学概论与C语言程序设计作业要求https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14作业内容学习C语言程序设计第十三章作业正文  https://www.cnblogs.com/CCCY12345/p/17937889  ......
  • 2023-2024-1 20231425《计算机基础与程序设计》第十四周学习总结
    2023-2024-120231425《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程2023-2024-1《计算机基础与程序设计》这个作业要求在哪里2023-2024-1计算机基础与程序设计第十四周作业)这个作业的目标《C语言程序设计》第13章  ......
  • 2023-2024-1 20231304 《计算机基础与程序设计》第十四周学习总结
    2023-2024-120231304《计算机基础与程序设计》第十四周学习总结作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十四周作业这个作业的目标自学教材《C语言程序设计》第13章并完成云班课测试......
  • 2023 Goodbye!
    摆了一天,终于想起今天该跨年了(虽然那个时候我可能还在教室里),该写点什么。可是真的打开文档,却发现倏忽而过的2023好像并没有给我留下什么深刻的印象。那就浅浅地用最后三天的生活总结这一年吧。2023.12.31今天推掉了父母约出去和亲戚吃饭的事,一方面作业很多,另一方面一天的假期......
  • 2023-2024-1 学号20231318《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十四周作业这个作业的目标自学教材《C语言程序设计》第13章并完成云班课测试。作业正文2023-2024-1学号20231318《计算机基础与程序设计》......