当前位置: 首页 > news >正文

第三天(实习无忧)

##学习了文件操作##(想要持久性存储数据就得使用文件)

1.文件的打开和关闭:

FILE* pf=fopen("文件路r/w/a");

r是读取文件内容,若无该文件则报错

w是写文件,若无该文件则直接新创建,重新使用会置空原文件内容

a是追加写文件

fclose(pf)使用完必须关闭,与free异曲同工

2.学习以下文件操作函数时让我想起了之前按行读取字符串使用的fgets以及其他等等,明白了其原理并与现在的文件操作建立了联系,并解答了很多之前并未发现的问题。

(读取文件内容函数搭配用r,写文件函数搭配w,打开方式需注意,类似rb,wb是二进制方式)

其实scanf就是从标准输入流也就是键盘输入读取内容存储到对应变量里去,而fgetc这类输入函数是从文件流读取内容,其实两者也是异曲同工。之前误解成为什么scanf看起来像输入到变量里去而文件输入函数却不能输入到文件里去,其实两者实质是在流里读取内容而不是输入,这让我把scanf与文件输出函数混为一谈。而printf与输出函数亦是如此,前者是输出到屏幕,后者是输出到文件,应站在编写的程序为主体看待这两对。

int ch=fgetc(pf) 从文件读取一个字符,可搭配while循环使用一直读取,直到文件结束

fputs("ch",pf) 输出一个字符到文件里去,可以搭配for循环一直输入

fgets(arr,100,pf) 从文件里读取100个字节的字符串到arr里去 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!(之前竞赛时有使用过这个函数读取一行字符串但不理解原理 fgets(arr,100,stdin) 现在明白其实函数最后一个参数可以自己调节,使用stdin其实就是在标准输入流也就是键盘读取内容,现在只是改为在pf文件里读取,类似如此以上及以下的文件操作函数其实也可以如此使用。而搭配此函数在键盘读取字符串通常需要将结尾 \n改为\0,之前使用的是 arr[strcspn(arr,"\n")]='\0' ,现在突然明白strcspn其实是找到改字符串的偏移量也就是下标所以才用【】括起来)

fputs("arr",pf) 输出一串字符串到文件里去

fscanf(pf,"%s %d",arr,&n) 从文件格式化读取对应内容到对应变量中

fprintf(pf,"%s %d",arr,n) 格式化输出对应变量的内容到文件里去

fread(arr,size,n,pf) 读取文件n个字节为size的内容到arr里去 !!!!!!!!!!

fwrite(arr,size,n,pf) 将arr中n个字节为size的内容输出到pf文件中 !!!!!!!!!!两者均为二进制用法,需搭配rb或wb使用,也可以视为字节大小为size进行n次读取或输入操作。

3.拓展sscanf与sprintf:

sscanf(arr,"%s %d",brr,&n) 从字符串arr中读取格式化数据放到对应变量中

sprintf(arr,"%s %d",brr,n) 将格式化变量存储到arr中

4.文件的随机读写:(光标起始位置在第一个字节,偏移量为0处,光标即使文件指针)

fseek(pf,n,SEEK_SET // SEEK_CUR // SEEK_END); 分别对应头,当前光标违者,尾。把光标从某个位置跳过n个字节

ftell(pf) 返回当前光标所在位置

rewind(pf) 重置光标位置即到0偏移量即起始位置

三者搭配例如获取文件大小:

fseek(pf,0,SEEK_END); //光标跳到文件尾

long flie_size=ftell(pf); //返回文件大小

rewind(pf); //光标回到文件头

http://www.jsqmd.com/news/577537/

相关文章:

  • 实战应用:基于快马ai为python项目定制mac系统下的openclaw集成安装方案
  • 轻松加密文件生成exe,无需原程序解密
  • SEO推广效果解决方案如何提高网站流量
  • 论“贾子哲学”理论体系的建构逻辑与“鸽姆智库”的学术-实践范式
  • ai辅助开发新体验:在快马平台中智能调优llmfit微调流程
  • 精益生产线系统选型指南:2026年值得推荐的10个精益生产线系统
  • OpenClaw硬件适配:Qwen3-14B在不同显卡配置下的性能对比
  • 避坑指南:用Cesium Primitive画带厚度的管道,别忘了处理精度和封口!
  • 哈利波特《预言家日报》被麻瓜做出来了!GitHub开源神器两天狂揽12k星
  • (论文速读)嵌入式GPU上的实时多目标视觉追踪
  • 警告:Polars 2.0默认不启用SIMD加速!3步强制开启AVX-512清洗加速(含Linux/macOS/WSL2三平台安装验证清单)
  • JiYuTrainer终极指南:如何在课堂上突破极域电子教室限制
  • intv_ai_mk11高性能部署:transformers量化加载+低延迟响应实测数据
  • 【底层重构】C语言100篇:从入门到天花板 第34篇 动态内存管理:malloc/calloc/realloc/free 详解
  • 别让“信息差”毁了你的课题申请
  • 信捷XDH PLC与西门子V20变频器Modbus通讯实践:功能实现、配件说明及参数设置
  • 原创论文:基于深度学习的低质量图像增强技术研究
  • ollama部署QwQ-32B完整教程:支持YaRN的131K上下文推理稳定性验证
  • claud-code源码分析(六) --------- swarm多agent协作
  • 从游戏玩家到AI创造者:Hearthrock如何重塑你的炉石传说体验
  • DP——背包DP
  • OpenClaw安全方案:Qwen3.5-9B本地化部署保护敏感数据
  • seo话术与网站用户体验的关系
  • Agent如何提升企业合同审核的效率与准确率?:企业级智能自动化落地指南
  • 聚焦空中下载测试服务赛道:2032年市场规模有望达135.9亿元,发展动能加速释放
  • Linux进程管理:从基础概念到实践应用
  • 中文文献管理神器:Jasminum插件让Zotero工作效率提升300%
  • 学习日记DAY17
  • DeepSeek连续宕机背后:V4真的要来了?
  • 2026年加气混凝土楼板应用白皮书市政工程篇:防火隔墙板、预制板、预制构件、预制隔墙板、ALC蒸压加气混凝土条板选择指南 - 优质品牌商家