欧美大屁股bbbbxxxx,狼人大香伊蕉国产www亚洲,男ji大巴进入女人的视频小说,男人把ji大巴放进女人免费视频,免费情侣作爱视频

歡迎來到入門教程網(wǎng)!

C語言

當(dāng)前位置:主頁 > 軟件編程 > C語言 >

利用C語言替換文件中某一行的方法

來源:本站原創(chuàng)|時間:2020-01-10|欄目:C語言|點擊: 次

文件中存貯的內(nèi)容如下所示:

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

通過使用下面的幾個函數(shù),fopen,fprintffscanf,fseekftell 。

具體的函數(shù)函數(shù)原型如下所示:

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) 

首先,數(shù)據(jù)寫入到文件中的是追加的形式。

具體的寫入代碼如下所示:

主要寫入時要指定每個數(shù)據(jù)的寬度,若不指定,當(dāng)修改某行的數(shù)據(jù),修改后的長度大于修改前得長度,將影響文件中的下一行。制定寬度之后,只要修改后的長度不大于制定的寬度,都不影響下面的內(nèi)容。(這是注意點)

FILE *fp=fopen("clientinfo.txt","ar+"); 
Clientinfo info; 
memset(&info,0,sizeof(Clientinfo)); 
。。。。 
。。。。/*完成對info結(jié)構(gòu)體的賦值*/ 
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中實現(xiàn)的: 

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

下面是修改后的數(shù)據(jù),修改第二行,沒有影響前后的數(shù)據(jù)。  

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

總結(jié)

利用C語言替換文件中某一行的方法到這就基本結(jié)束了,大家都學(xué)會了嗎?希望這篇文章的內(nèi)容對大家的學(xué)習(xí)和工作能帶來一定的幫助,如果有疑問,大家可以留言交流。

上一篇:將CString字符串輸入轉(zhuǎn)化成整數(shù)的實現(xiàn)方法

欄    目:C語言

下一篇:c++加法高精度算法的簡單實現(xiàn)

本文標(biāo)題:利用C語言替換文件中某一行的方法

本文地址:http://mengdiqiu.com.cn/a1/Cyuyan/2052.html

網(wǎng)頁制作CMS教程網(wǎng)絡(luò)編程軟件編程腳本語言數(shù)據(jù)庫服務(wù)器

如果侵犯了您的權(quán)利,請與我們聯(lián)系,我們將在24小時內(nèi)進(jìn)行處理、任何非本站因素導(dǎo)致的法律后果,本站均不負(fù)任何責(zé)任。

聯(lián)系QQ:835971066 | 郵箱:835971066#qq.com(#換成@)

Copyright © 2002-2020 腳本教程網(wǎng) 版權(quán)所有