news 2026/6/10 17:25:57

xm C语言12

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
xm C语言12

1.rewind函数

因为我们定义的FILE*fp 是一个指针,所以他不断移动的时候最终会到达文件末尾,我们如果还想使用这个文件关闭再打开未免太过麻烦,所以就有了rewind

rewind的作用就是将指针移动到文件开头,在 再次读取相同的文件 以及读写之间转换 时起作用

#inclde<stdio.h> int main(){ //rewind函数 FILE*fp=fopen("ok.txt","r"); if(file==NULL){ printf("error"); return 0;} char x; while(fscanf(fp,"%c",&x)!=EOF){ printf("%c",x); } rewind(fp); printf("again\n"); while(fscanf(fp,"%c",&x)!=EOF){ printf("%c",x); } fclose(fp); return 0;}

2.structure结构体写入和读取文件

写入:将结构体的内容传入到文件中保存,文件可以保存大量的结构体,使用方便

fprintf(file.name,"%s/%d....",variable);

读取:从文件中读取相应的内容传到内存,供计算机短期使用

fscanf(file.name,"%s",&x address);

#include<stdio.h> struct school{char name[20]; int a;//age char grade;//ABCD }; int main(){ FILE*file=fopen("school.txt","w"); if(file==NULL){ printf("error"); return 0;} struct school s1={amy,18,B}; fprintf(file,"name is %s, age is %d,grade is %c",s1.name,s1.a,s1.grade);} fclose(file); file=fopen("school.txt","r"); char k; while(fscanf(file,"%c",&k)!=EOF){ printf("%c",k); } fclose(file); return 0;}

这里输出用到的while循环就是当我读取的内容不等于EOF(不是结尾的时候)因此最后输出的结构就是 name is amy,age is 18,grade is B

同时在这里的while循环也可以是

fscanf(file,"name is %s,age is %d,grade is %c",&s1.name,&s1.a,&s1.grade);

printf("name is %s, age is %d,grade is %c",s1.name,s1.a,s1.grade);

fscanf的格式必须和fpeintf输入的完全匹配

(对结构体数组出现了问题,明天问老师后二编补充)

3.search 从文件中查找

第一种 使用sctmp函数 strcmp(x,y)是逐字符比较然后进行做差,通常寻找单字符时使用

#include <stdio.h> #include <stdlib.h> int main() { FILE*fp=fopen("test.txt","w"); if(fp==NULL){ printf("error"); return 0; } char ch[20]="letter"; char word[]="A"; fputs(ch,fp); fclose(fp); fp=fopen("test.txt","r"); char k[20]; int count=0; while(fscanf(fp,"%s",k)!=EOF){ if(strcmp(k,word)==0) count++; } printf("occur %d times",count); fclose(fp); return 0; }

第二种就是直接if进行比较(只需要换while循环部分) 如果是整数就更好做了

while(fscanf(fp,"%c",&k)!=EOF){ if(strcmp(k,word)==0) count++; } while(fscanf(fp,"%s",k)!=EOF){ if(strcmp(k,word)==0) count++; }

4.f()的格式

首先f....()都是函数,只是简化了格式,但是仍然需要输入所需的内容来获得函数结果。他们来自于函数库 stdio.h 所以使用之前记得调用函数库

fscanf(文件指针, 格式字符串, 输入项表列) eg fscanf(fp, "%d,%f", &i, &t)

fprintf(文件指针, 格式字符串, 输出表列)egfprintf(fp, "%d,%f", i, t)

fgets(字符数组, 最大字符数, 文件指针),作用是读取一行内容(包括换行符),并在末尾自动添加空字符 '\0' egfgets(str, 100, fp)从文件读取最多 99 个字符

fputs(字符串, 文件指针),作用是将字符串写入文件,不添加额外换行符 egfputs("Hello", fp)

(四种用法来自夸克)

5.注意NULL EOF检查 记得关闭文件

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 11:19:50

大模型微调监控指标:跟踪Qwen3-32B训练过程

大模型微调监控指标&#xff1a;跟踪Qwen3-32B训练过程 在当前大语言模型&#xff08;LLM&#xff09;快速演进的背景下&#xff0c;企业与研究机构正面临一个关键挑战&#xff1a;如何在有限算力资源下&#xff0c;高效微调出性能接近顶级闭源模型的定制化系统。以通义千问系列…

作者头像 李华
网站建设 2026/6/9 20:47:51

8 个文献综述 AI 工具,本科生降重查重率优化推荐

8 个文献综述 AI 工具&#xff0c;本科生降重查重率优化推荐 文献综述的“重担”与时间的“紧逼” 对于大多数本科生来说&#xff0c;论文写作从来不是一件轻松的事情&#xff0c;尤其是当任务涉及到文献综述时&#xff0c;更是让人感到压力山大。文献综述不仅是对已有研究成果…

作者头像 李华
网站建设 2026/6/10 9:57:47

Maven依赖冲突怎么解决?Jar包冲突排查指南

Maven依赖冲突怎么解决&#xff1f;Jar包冲突排查指南 项目跑着好好的&#xff0c;突然就报错了&#xff1a; NoSuchMethodError ClassNotFoundException别慌&#xff0c;十有八九是Maven依赖冲突。今天教你怎么排查和解决。 为什么会冲突&#xff1f; 假设你的项目同时依赖了A…

作者头像 李华
网站建设 2026/6/10 10:54:51

10 个降AI率工具推荐,专科生必看!

10 个降AI率工具推荐&#xff0c;专科生必看&#xff01; 当AI痕迹成为论文的“致命伤” 对于许多专科生来说&#xff0c;写论文从来都不是一件轻松的事。从选题、查资料到撰写、修改&#xff0c;每一个环节都充满了挑战。而如今&#xff0c;随着AI写作工具的普及&#xff0c;越…

作者头像 李华
网站建设 2026/6/10 0:52:33

强化学习第五课 —— A2C A3C:并行化是如何杀死经验回放

在 DQN 称霸的时代&#xff0c;我们为了解决强化学习中样本**“非独立同分布&#xff08;Non-IID&#xff09;”**的问题&#xff0c;不得不引入了一个巨大的外挂硬盘——经验回放池&#xff08;Experience Replay Buffer&#xff09;。 然而&#xff0c;2016 年 DeepMind 推出…

作者头像 李华
网站建设 2026/6/10 10:49:05

9 个开题报告 AI 工具,本科生降AI率推荐

9 个开题报告 AI 工具&#xff0c;本科生降AI率推荐 论文写作的“三座大山”&#xff1a;时间、重复率与自我怀疑 对于本科生而言&#xff0c;撰写开题报告不仅是学术生涯中的重要一环&#xff0c;更是一场与时间赛跑的挑战。从选题到文献综述&#xff0c;从框架搭建到内容撰写…

作者头像 李华