文件操作:将文件中的一些字符串进行替换
#include<stdio.h>#include<string.h>
int main()
{
FILE *fp1;
FILE *fp2;
FILE *fp3;
char ch;
fp1=fopen("C:\\english.txt","r");
fp2=fopen("C:\\englishout.txt","w");
fp3=fopen("C:\\out.txt","w");
ch=fgetc(fp1);
if(fp1==NULL)
{
printf("原文件打开失败!");
}
else
{
if(fp2==NULL)
{
printf("目标文件打开失败!");
}
else
{
while(ch!=EOF)
{
fputc(ch,fp2);
ch=fgetc(fp1);
}
}
}
char string1[256]={0};
char string2[256]={0};
char s[256]={0};
char *p=NULL;
printf("请输入要用来替换文件的字符串!\n");
scanf("%s",&string1);
printf("请输入文件中被替换的字符串!\n");
scanf("%s",&string2);
fgets(s,256,fp2);
puts(s);
p=s;
while(1)
{
p=strstr(p,string2);
if(p)
{
memmove(p+strlen(string1),p+strlen(string2),strlen(p)-strlen(string2)+1);
for(int i=0;i<strlen(string1);i++)
{
p[i]=string1[i];
}
}
else break;
}
fprintf(fp3,"%s",s);
fclose(fp1);
fclose(fp2);
return 0;
}
为什么他这个对文件fp2改写出了错啊?memmove这个函数根本就没有执行。
[此贴子已经被作者于2017-3-25 13:10编辑过]