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

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

时间:2023-12-31 21:11:06浏览次数:45  
标签:fp 文件 函数 20231326 int 2024 FILE 2023 指针

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

作业信息

这个作业属于哪个课程 2023-2024-1-计算机基础与程序设计
这个作业要求在哪里 2022-2023-1计算机基础与程序设计第十四周作业
这个作业的目标 《C语言程序设计》第十三章
作业正文 https://www.cnblogs.com/gisliw/p/17937958

教材学习内容总结

《C语言程序设计》

二进制文件和文本文件

  • 二进制文件是一种字节序列,没有字符变换,其中的数据以二进制存储
  • 文本文件是一种字符序列,其中的数据以ASCII码存储

存储数据123时占用空间:

二进制文件:    00000000 01111011
                            123(bin)
文本文件:      00110001 00110010 00110011
                    "1"      "2"      "3"

文件的打开与关闭

打开文件

fopen()函数,返回值为文件指针,若返回为NULL则表示文件不存在。
函数原型:

FILE *fopen(const char *filename, const char *mode);

stdio.h中定义了结构体 FILE。

// 例子:只读打开"D:\\text.txt"(首先确保此文件存在)

FILE *fp = fopen("D:\\text.txt", "r");
参数 打开方式
r 按只读打开
w 只写打开文件,指针指向文件头部
a 与w不同,只写打开文件后指针指向文件末尾
+ 与r, a, w配套使用,按读写打开。即既可以读取又可以写入
b 与r, w, a配套使用,按二进制打开文件
关闭文件

fclose()函数,当关闭成功时返回0,否则返回非0值。
函数原型:

int fclose(FILE *fp);

文件读写

按字符读写文件
  • 读出字符fgetc()
    函数fgetc()用于从一个以只读或读写方式打开的文件上读字符。
    函数原型:
int fgetc(FILE *fp);
// fp是函数 fopen() 返回的文件指针

若读取成功,则返回该字符;若读到文件末尾,则返回EOF(一个符号变量,在stdio.h中定义为-1)

  • 写入字符fputc()
    函数fputc()用于将一个字符写入一个文件
    函数原型:
int fputc(int c, FILE *fp);
// fp是函数 fopen() 返回的文件指针,c 是要输入的字符

若成功写入,返回字符c;若写入错误,则返回EOF

按字符串读写
  • 按字符串读fgets()
char *fgets(char *s,int n,FILE *fp);
// 从fp所指的文件中读取字符串并在字符串末尾添加'\0',然后存入s,最多读n-1个字符
// 当读到回车换行符、文件末尾或读满n-1个字符时函数返回该字符串的首地址

若出现写入错误,则返回 EOF,否则返回一个非负数

  • 按字符串写fputs()
int fputs(const char *s, FILE *fp);
按格式读写
  • 按格式读fscanf()
int fscanf(FILE *fp, const char *format, ...);
// 比 scanf() 多了文件指针

从fp中读:

fscanf(fp, "%d%f", &i, &t);
  • 按格式写fprintf()
int fprintf(FILE *fp,const char *format,...);
// 比 printf() 多了文件指针

写入fp:

fprintf(fp, "%d,%6.2f", i, t);
按数据块读写
  • 数据块读fread()
    从fp所指的文件中读取数据块并存储到buffer指向的内存中
unsigned int fread(void *buffer, unsigned int size, unsigned int count, FILE *fp);
// buffer是数据块起始地址

返回实际读到的数据块个数

  • 数据块写fwrite()
    将buffer指向的内存中的数据块写入fp所指的文件
unsigned int fwrite(const void *buffer, unsigned int size, unsigner int count, FILE *fp);

使用举例:
若文件以二进制形式打开:
fread(f,4,2,fp);
此函数从fp所指向的文件中读入2个4个字节的数据,存储到指针f所指向的空间中。

文件随机访问

fseek()

将fp的文件位置指针从fromwhere开始移动offset个字节,指示下一个要读取数据的位置

int fseek(FILE *fp, long offset, int fromwhere);
// ANSI C 要求偏移量offset为长整型数据,常量数据后要加L
// fromwhere有三个取值:0(SEEK_SET)表示文件开始,1(SEEK_CUR)表示当前位置,2(SEEK_END)表示文件末尾

fseek函数应用举例
fseek(fp, 100L, 0);
将位置指针移到离文件头100个字节处。
fseek(fp, 50L, 1);
将位置指针移到离当前位置50个字节处。
fseek(fp, -10L, 2);
将位置指针从文件末尾处向后退10个字节。

rewind()
void rewind(FILE *fp);

将文件位置指针指向文件首字节,即重置到文件首部

ftell()
long ftell(FILE *fp);

按相对文件首部的偏移量来表示当前文件指针位置

基于AI的学习

image

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

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

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

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第十四周 102/200 1/2 20/20

标签:fp,文件,函数,20231326,int,2024,FILE,2023,指针
From: https://www.cnblogs.com/gisliw/p/17937958

相关文章

  • 2023-2024 20231421《计算机基础与程序设计》第十四周学习总结
    作业要求:https://www.cnblogs.com/rocedu/p/9577842.html#WEEK14作业目标:自学《c语言程序设计》第十三章作业正文:教材学习内容总结《c语言程序设计》文件操作是C语言中常用的一种数据输入与输出方式,它可以实现数据的持久化存储和读取。文件操作涉及到以下几个方面:文件的概......
  • 2023-2024-1 20231306 《计算机基础与程序设计》第十四周学习总结
    作业信息这个作业属于哪个课程2023-2024-1-计算机基础与程序设计这个作业要求在哪里2023-2024-1计算机基础与程序设计第十四周作业这个作业的目标参考本周学习资源、自学教材《C语言程序设计》第13章并完成云班课测试作业正文教材学习内容总结《C语言程序......
  • 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章并完成云班课测试......