将一个文件的内容,做字符循环移动加密后,拷贝到另一个文件中,使用fputs()函数出错,程序崩溃。本人新手,求帮忙。。。
#include <stdio.h>#include <stdlib.h>
#define LEN 50 //数组大小
//该程序作用为:通过将文件t1.text中的字符每个字符的ASCLL+4,做加密处理,然后存放在文件t2.text中
int main(int argc,char *argv[])
{
FILE *in,*out;//两个文件指针
char words[LEN]; //用来存放t1.text中的字符
int i;
char ch;
if((in=fopen("t1.text","r"))==NULL
&& (out=fopen("t2.text","w"))==NULL) //文件不能打开,则退出
{
printf("Can't open the file.\n");
exit(1);
}
fgets(words,LEN,in); //读取t1.text中的字符,并存在words数组中
printf("%s\n",words);
for(i=0;(ch=words[i])!='\0';i++)//将数组中的字符的ASCLL+4,做加密处理
{
if('a'<=ch&&ch<='v')
{
words[i]=ch+4;
}
else if('w'<=ch&&ch<='z')
{
words[i]=ch-22;
}
}
printf("%s",words);
fputs(words,out); //通过fputs函数,将words数组中的字符串存到t2.text中
经过调试后,发现到fputs函数之后就出错了, 程序便崩溃了!出错的原因是函数用错吗?请问有什么方法可以解决?
if(fclose(in)!=0&&fclose(out)!=0) //文件不能正常关闭,则退出
{
printf("Can't the file.\n");
exit(2);
}
return 0;
}