C语言向文件中随机插入字符串,结果出现乱码问题,怎么修改
int insert()//插入函数
{
system("cls");
char word[200];
int n,pos;
char ch[1024],ch1[1024];
char chh[1024];
int i=1,j,lenth,len;
FILE*fp;
int select,select1;
printf("请选择您要插入的文本:\n");
printf("********************\n");
printf("******文本菜单******\n");
printf("********************\n");
printf("1.纯英文.\n");
printf("2.纯中文.\n");
printf("3.中文英文混合.\n");
printf("0.返回.\n");
printf("********************\n");
printf("您选择:");
scanf("%d",&select);
if(select==1)
{
fp=fopen("《cat and pig》.txt","r+");
}
if(select==2)
{
fp=fopen("《猫和猪》.txt","r+");
}
if(select==3)
{
fp=fopen("《猫和pig》.txt","r+");
}
if(select==0)
{
return 0;
}
while(!feof(fp))//直到读取到文件尾
{
fscanf(fp,"%c",&ch[i]);
i++;
}
fclose(fp);
printf("已成功读取文本!!!\n");
printf("请输入你要插入的字符串:");
fflush(stdin);
gets(word);
printf("请输入您要随机插入的次数:");
scanf("%d",&n);
lenth=i;//无\0,不能用strlen
strcpy(ch1,ch);
len=strlen(word);
srand(time(NULL)); //使数据更随机
for(j=0;j<n;j++)
{
pos=rand()%lenth+1;
printf("随机位置:%d",pos);
printf("\n");
for(i=0;i<lenth+len+len*j;i++)
{
if(i<pos)//未到插入位置
{
chh[i]=ch1[i];
}
else if(i<pos+len)
{
chh[i]=word[i-pos];//把word插入
}
else//超出范围
{
chh[i]=ch1[i-len];
}
}
}
for(i=0;i<lenth+len*n;i++)
{
printf("%c",chh[i]);
}
printf("您已完成了插入,是否存盘?\n");
printf("********************\n");
printf("1.YES.\n");
printf("2.NO.\n");
printf("你选择:");
scanf("%d",&select1);
if(select1==1)
{
save(select,lenth+len*n,chh);//存盘
}
else
{
printf("程序结束!!");
return 0;
}
}