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

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

时间:2024-12-28 16:31:38浏览次数:6  
标签:返回 文件 stream 学号 int 2024 2025 FILE size

作业信息

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

教材学习内容总结

《C语言程序设计》第十三章:

一、文件基本概念

文件本质:文件是存储于外部介质(如磁盘)的数据集合,C 语言将其视为字符(字节)序列的流式文件。
文件类型:
文本文件:以字符的 ASCII 码形式存储数据,每个字符占一个字节。例如,整数 123 在文本文件中以字符 '1'、'2'、'3' 的 ASCII 码形式存储,可读性强,但存储效率相对较低,转换时可能存在精度损失。
二进制文件:按数据在内存中的存储形式原样存储到文件中。如整数 123 在内存中以二进制补码形式存储,在二进制文件中也以相同的二进制序列存储,存储效率高,适合存储大量数据和对精度要求高的数据,但可读性差。

二、文件指针与操作流程

文件指针:C 语言通过文件指针访问和操作文件,它是指向FILE类型结构体的指针变量,FILE结构体包含文件当前位置、缓冲区状态等信息。
文件操作基本流程:打开文件(获取文件指针)→进行读写等操作→关闭文件(释放资源)。

三、文件打开与关闭

打开函数fopen:FILE *fopen(const char *filename, const char *mode),filename为文件名(含路径),mode指定打开方式。例如,“r” 为只读打开文本文件,“rb” 为只读打开二进制文件。若成功打开,返回文件指针;否则返回NULL。
关闭函数fclose:int fclose(FILE *stream),成功关闭返回 0,否则返回EOF(通常为 -1),关闭文件可防止数据丢失和释放资源。

四、文件读写操作

(一)文本文件读写

字符读写:
fgetc:int fgetc(FILE *stream)从文件读一个字符,到达文件末尾或出错返回EOF。
fputc:int fputc(int c, FILE *stream)向文件写一个字符,成功返回写入字符,否则返回EOF。
字符串读写:
fgets:char *fgets(char *s, int n, FILE *stream)从文件读一行到字符数组s,最多读n - 1个字符,成功返回指针s,否则返回NULL。
fputs:int fputs(const char *s, FILE *stream)将字符串s写入文件,成功返回非负整数,否则返回EOF。
格式化读写:
fscanf:int fscanf(FILE *stream, const char *format,...)从文件按格式读数据,返回成功读取的数据项个数,出错或到文件末尾返回EOF。
fprintf:int fprintf(FILE *stream, const char *format,...)将数据按格式写入文件,成功返回写入字符个数,否则返回负数。

(二)二进制文件读写

数据块读写:
fread:size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream)从文件读指定长度数据块到内存ptr,size为每个数据项大小,nmemb为数据项个数,返回成功读取的数据项个数。
fwrite:size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream)将内存ptr中的数据块写入文件,返回成功写入的数据项个数。

五、文件定位

文件位置指针:系统自动维护,指示下一个读写字符位置。文本文件按字符移动,二进制文件可按字节或数据块移动。
定位函数:
fseek:int fseek(FILE *stream, long offset, int whence)移动文件位置指针,offset为偏移量,whence指定起始位置(SEEK_SET、SEEK_CUR、SEEK_END),成功返回 0,否则返回非零值。
ftell:long ftell(FILE *stream)获取文件位置指针当前位置,出错返回 -1L。
rewind:void rewind(FILE *stream)将文件位置指针重定位到文件开头,无返回值。

六、文件错误处理

错误检测:ferror函数检测文件操作错误,int ferror(FILE *stream),出错返回非零值,否则返回 0。
错误清除:clearerr函数清除文件错误标志,void clearerr(FILE *stream),使后续文件操作能正常进行。

基于AI的学习

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

问题1:在本地环境实验时无法成功
解决:发现是因为没有安装编译32位的C程序的安装包,最后选择在蓝桥上进行实验。
问题2:vim编辑器中编辑文件时发现无法输入
解决:经过学习vim编辑器的使用,发现没有进入插入模式
问题3:改动的文件没有生效
解决:发现是因为退出vim时没有使用wq保存退出。
问题4:实验最后总是无法攻击成功
解决:发现是地址计算错误导致无法攻击成功,使用十六进制计算器解决了这个问题

其他(感悟、思考等,可选)

其他学习内容:十进制浮点数 转化为IEEE754标准的32浮点数的二进制格式

标签:返回,文件,stream,学号,int,2024,2025,FILE,size
From: https://www.cnblogs.com/mlq061015/p/18634381

相关文章

  • 当下的网络安全行业前景到底怎么样?2025年还能否入行?
    很多人不知道网络安全发展前景好吗?学习网络安全能做什么?今天为大家解答下先说结论,网络安全的前景必然是超级好的作为一个有丰富Web安全攻防、渗透领域老工程师,之前也写了不少网络安全技术相关的文章,不少读者朋友知道我是从事网络安全相关的工作,于是经常有人私信向我“......
  • 2025年转行网安到底行不行,网络安全有没有发展前途,零基础转行难不难?
    在被新冠疫情常态化影响的今天,职场当中呈现出了严重的两极分化现象,具体的表现形式为:一些人薪资翻倍、愈加繁忙,另一些人则加入了失业大军、不知所措;一些行业实现了井喷式增长,一些行业却不断裁员、随时面临倒闭的风险。也有这样一个行业,正因为疫情的出现,使其变得更加重要,它......
  • 『联合省选2025集训』『图的连通性进阶』 知识点 总结
    前言若有长风绕旗,那便是我在想你了。这周讲了个图论连通性板块的一些进阶知识,周六全国第一给我们讲了一些树上的问题,感觉树剖板块实现难度较大,后面几道偏思维的题会有些许好转。这里就先写写连通性相关的进阶的一些知识点吧。主要涵盖:耳分解,双极定向,三连通分量和一些重要的......
  • 2024.12.28模拟赛
    耳机没电了14:46耳机彻底没电了,可是我明明记得早上充了电的这应该是今年最后一次模拟赛了打了T1正解、T225分暴力与T410分暴力,实际T2挂了15分,总分115,排名第六现在也不知道暴力是怎么WA掉的今日作业T1【签到题】题目大意:给出一个长度为\(n\)的序列\(a_{i}\),要求......
  • 【更新至2025年新版本】超详细PyCharm安装教程及基本使用!
    PyCharm是一款PythonIDE,其带有一整套可以帮助用户在使用Python语言开发时提高其效率的工具,比如,调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等等。此外,该IDE提供了一些高级功能,以用于支持Django框架下的专业Web开发。文章目录一、P......
  • C++高级程序设计 20241228
    当然可以。在C++中,面向对象编程(OOP)是一种编程范式,它使用类和对象来模拟现实世界中的实体和行为。以下是构造函数、拷贝构造函数、析构函数和普通成员函数的简单解释和例子:1.构造函数构造函数是一种特殊的成员函数,用于创建对象时初始化对象的状态。它与类同名,并且没有返回类型,甚......
  • Telerik 2024 Q4
    2024年第四季度新增内容最新动态历史利用新的增强功能轻松自定义BlazorSchedulerProgress®Telerik®UIforBlazor在Scheduler中引入了新的改进,可以轻松进行自定义:BlazorScheduler中的议程视图提供了简化的、可滚动的预定事件列表,提供了即将到来的......
  • “代码之舟”——2024秋软工实践纪
    这个作业属于哪个课程https://edu.cnblogs.com/campus/fzu/SE2024这个作业要求在哪里https://edu.cnblogs.com/campus/fzu/SE2024/homework/13315这个作业的目标回顾这一学期所完成的软工任务,总结这一学期的收获学号102202102王子聪引言:在上这门课之前还......
  • 2025毕设ssm失物招领系统程序+论文
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景在现代社会,人们的生活节奏日益加快,在日常活动中物品遗失的情况频繁发生。无论是在校园、社区还是公共场所,失物的寻找和归还缺乏一个高效、便捷且......
  • 2025毕设ssm社区二手交易平台程序+论文
    本系统(程序+源码)带文档lw万字以上 文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容一、研究背景随着社会经济的发展和人们生活水平的提高,消费观念逐渐发生转变。人们购买的物品日益增多,随之产生了大量的闲置物品。传统的处理方式如赠送亲友或......