时间:2021-05-02
文件中存贮的内容如下所示:
? 1 2 3 11 1122 0 1122 * * 0 0 22 222 0 222 * * 0 0 33 333 0 333 * * 0 0通过使用下面的几个函数,fopen,fprintf,fscanf,fseek,ftell 。
具体的函数函数原型如下所示:
? 1 2 3 4 5 FILE*fopen(const char*filename,const char *mode); int fprintf(FILE*stream,const char *format,...) int fscanf(FILE* stream,const char *format,...) int fseek(FILE*stream,long offset,int origin) long ftell(FILE* stream)首先,数据写入到文件中的是追加的形式。
具体的写入代码如下所示:
主要写入时要指定每个数据的宽度,若不指定,当修改某行的数据,修改后的长度大于修改前得长度,将影响文件中的下一行。制定宽度之后,只要修改后的长度不大于制定的宽度,都不影响下面的内容。(这是注意点)
? 1 2 3 4 5 6 7 8 9 FILE *fp=fopen("clientinfo.txt","ar+"); Clientinfo info; memset(&info,0,sizeof(Clientinfo)); 。。。。 。。。。 fprintf(fp,"%10s %10s %10d %10s %10s %10s %10d %10d",info.id,info.nickname,\ info.online,info.pwd,info.encryp,info.ip,info.port,info.fd); fprintf(fp,"\n"); fclose(fp);修改处的代码如下所示,整个代码是我在MFC中实现的:
? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 FILE *fp=fopen("clientinfo.txt","r+"); Clientinfo info; long nline=0,n; memset(&info,0,sizeof(Clientinfo)); int oldline=0; CString str; while((n=fscanf(fp,"%s %s %d %s %s %s %d %d",info.id,info.nickname,\ &info.online,info.pwd,info.encryp,info.ip,&info.port,&info.fd))!=EOF) { str.Format("%d",nline); MessageBox(str); if(strncmp(info.id,id,id.GetLength())==0) { oldline=nline; break; } nline=ftell(fp); } fseek(fp,oldline,SEEK_SET); if(oldline!=0) { fprintf(fp,"\n"); } fprintf(fp,"%10s %10s %10d %10s %10s %10s %10d %10d",info.id,info.nickname,\ info.online,info.pwd,info.encryp,info.ip,info.port,info.fd); fprintf(fp,"\n"); fclose(fp);下面是修改后的数据,修改第二行,没有影响前后的数据。
? 1 2 3 11 1122 0 1122 * * 0 0 22 222f 0 222f * * 0 0 33 333 0 333 * * 0 0总结
利用C语言替换文件中某一行的方法到这就基本结束了,大家都学会了吗?希望这篇文章的内容对大家的学习和工作能带来一定的帮助,如果有疑问,大家可以留言交流。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例讲述了Python实现修改文件内容的方法。分享给大家供大家参考,具体如下:1替换文件中的一行1.1修改原文件①要把文件中的一行Server=192.16
两种方法实现:1)一行一行的读取aspx文件然后处理2)一次性读取aspx文件然后处理处理逻辑:替换""为""(将两个空格替换为一个空格),将所有的换行符替换为
本文所述实例主要实现WPF项目中C#改变DataGrid某一行和单元格颜色的功能。分享给大家供大家参考。具体方法如下:如果要改变DataGrid某一行的颜色、高
基本形式#definenamereplacement_text通常情况下,#define指令占一行,替换文本是define指令行尾部的所有剩余部分,但也可以把一
word中查找替换功能非常强大,我们往往利用“查找替换”功能来替换图片、文字、标点符号等。当然还可以利用查找替换功能来替换文章中的相同错