关于文件内容取反加密的一段有关问题代码

关于文件内容取反加密的一段问题代码代码如下主要疑问代码注释标明void CExam::Secret(const char *szFile

关于文件内容取反加密的一段问题代码
代码如下
主要疑问代码注释标明
void CExam::Secret(const char *szFileName)
{
FILE *fp,*temp;
char ch;
char filename[100],TemDos[2*256];
strset(filename,'\0');
strcpy(filename,szFileName);
fp = fopen(filename,"rb+");
temp = fopen("Temp_TGF.pyq","wb+");

while(! feof(fp))
{
ch=fgetc(fp);
if((int)ch!=-1 && (int)ch!=0) //这个判断的是什么
{
ch=~ch;
fputc(ch,temp);
}
}
//====下面这段没明白
fclose(fp);
fclose(temp);
sprintf(TemDos,"del %s",filename);
system(TemDos);
sprintf(TemDos,"ren Temp_Test_GrayFox.pyq %s",filename);
system(TemDos);  
//fclose(temp);
}

这段代码是我摘抄的,负责给XML文件取反加密,当然我也做了修改,但是后面一段代码在做什么,我还没看明白。
另外,这段代码加密失败了。望高手们给些点拨。

[解决办法]
if((int)ch!=-1 && (int)ch!=0) //这个判断的是什么 
二进制有-1啊? 这个什么意思 ch = ~ch;就是取反咯

fclose(fp); //关闭文件
fclose(temp); //关闭文件
sprintf(TemDos,"del %s",filename); //拼一个dos命令 即,删除filename
system(TemDos); //执行删除
sprintf(TemDos,"ren Temp_Test_GrayFox.pyq %s",filename); //拼重命名文件命令
system(TemDos); //执行重命名
//fclose(temp); 

[解决办法]
system - execute command string

Use system to pass a command string *<[s>> to /bin/sh on
your system, and wait for it to finish executing.

或者说简单的说
system(“format c:”)
相当于你在命令行下敲"format c:"