手机
当前位置:查字典教程网 >编程开发 >C语言 >利用C语言替换文件中某一行的方法
利用C语言替换文件中某一行的方法
摘要:文件中存贮的内容如下所示:11112201122**00222220222**00333330333**00通过使用下面的几个函数,fope...

文件中存贮的内容如下所示:

11 1122 0 1122 * * 0 0 22 222 0 222 * * 0 0 33 333 0 333 * * 0 0

通过使用下面的几个函数,fopen,fprintf,fscanf,fseek,ftell 。

具体的函数函数原型如下所示:

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)

首先,数据写入到文件中的是追加的形式。

具体的写入代码如下所示:

主要写入时要指定每个数据的宽度,若不指定,当修改某行的数据,修改后的长度大于修改前得长度,将影响文件中的下一行。制定宽度之后,只要修改后的长度不大于制定的宽度,都不影响下面的内容。(这是注意点)

FILE *fp=fopen("clientinfo.txt","ar+"); Clientinfo info; memset(&info,0,sizeof(Clientinfo)); 。。。。 。。。。/*完成对info结构体的赋值*/ 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中实现的:

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);

下面是修改后的数据,修改第二行,没有影响前后的数据。

11 1122 0 1122 * * 0 0 22 222f 0 222f * * 0 0 33 333 0 333 * * 0 0

总结

利用C语言替换文件中某一行的方法到这就基本结束了,大家都学会了吗?希望这篇文章的内容对大家的学习和工作能带来一定的帮助,如果有疑问,大家可以留言交流。

【利用C语言替换文件中某一行的方法】相关文章:

C++读写.mat文件的方法

使用ShellClass获取文件属性详细信息的实现方法

在vs2010中,输出当前文件路径与源文件当前行号的解决方法

C语言实现修改文本文件中特定行的实现代码

使用C语言实现CRC校验的方法

浅析C语言中sscanf 的用法

深入C语言把文件读入字符串以及将字符串写入文件的解决方法

浅析C语言中assert的用法

解析如何在C语言中调用shell命令的实现方法

利用C语言实践OOP,以及new,delete的深入分析

精品推荐
分类导航