C++,用for循环替换文件内容并保存到文件怎么做??要代码,谢谢

2025-06-22 01:45:59
推荐回答(1个)
回答1:

替换什么内容?这个替换内容是需要指定的才可以。不然没办法替代。
给你写了一下,可以的话加点分在采纳,谢谢。
#include
#include
#include
#include
using namespace std;
char *strstr_rep(char *source,char *old,char *ne)//字符替换
{
char *org=source;
char temp[256];
int old_length=strlen(old);//获得将被替换的字符串的大小
int i,j,k,location=-1;
for(i=0;source[i]&&(location==-1);++i)//location查找将被替换的字符串的位置
for(j=i,k=0;source[j]==old[k];j++,k++)
if(!old[k+1])
location=i;
if(location!=-1)//开始替换
{
for(j=0;j temp[j]=source[j];
for(i=0;ne[i];i++,j++)//再把替换的新字符串COPY到temp
temp[j]=ne[i];
for(k=location+old_length;source[k];k++,j++)//把剩下的内容COPY到temp
temp[j]=source[k];
temp[j]=NULL;
for(i=0;source[i]=temp[i];i++); //把临时字符串temp复制给source
}
return org;
}
int main()
{
fstream outfile("test.txt",ios::out|ios::in);
char ch;
char buffer[255];
int i=0,k=0;
if(!outfile){
cout<<"不能打开目的文件:test.txt"<<'\n';
exit(1);
}
outfile.unsetf(ios::skipws);
while (outfile>>ch) {//将文件全部内容读出到buffer
buffer[i]=ch;
i++;
}
strstr_rep(buffer,"2222","8888");//将"2000"替换为8888"
outfile.close();
ofstream infile("test.txt");
while(k!=i){infile< outfile.close();
return 0;
}
好久没写C艹代码,手生了。