例如:一个txt文件
i have a dream;
i want to be a bird;
that‘s all;
把第二行换成: good morning;
给我代码 谢谢!!!
ããCè¯è¨æä¾äºæ件æä½ï¼ä½æ¯æ¿æ¢æ件çæä¸è¡æ¯è¾éº»ç¦ï¼ä¸é¢ä¸ä¸ªåèæ¹æ³ï¼æ件ä¸åè´®çå 容å¦ä¸æ示ï¼
ããéè¿ä½¿ç¨ä¸é¢çå 个å½æ°ï¼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);
ä¸é¢æ¯ä¿®æ¹åçæ°æ®ï¼ä¿®æ¹ç¬¬äºè¡ï¼æ²¡æå½±åååçæ°æ®ã
谢谢啊 !!但是目标文件是cpp文件,想把其中的所有scanf和printf都换成fscanf fprintf即把从键盘获取换成从文件中提取,要怎么做才能有效率的实现呢??
追答用编辑器查找替换。
追问呃~~什么编辑器?不是很理解 VC?
追答什么编辑器都可以,记事本也行的。
本回答被提问者采纳