C语言文件加密中有这一段
while((ch=fgetc(fp))!=EOF)
{
ch+=key;
if(ch>'z'||ch>'z'&&ch<'a')
ch-=26
fputc(ch,fp1)
这是什么意思看不懂,求翻译。尤其if后面的语句跟加密有什么关系,还有那个数字26哪来的,还有while后语句是什么意思。我正在C语言入门阶段。求高手指点}
首先你这是一部分代码,fp,fp1分别是原文件操作指针和加密文件操作指针,key是加密方法,这个可以简单看作加某一个常数值,从而改变输入的字符,达到文件加密的效果。
while那句的意思是只要源文件不空,一直输入字符,每次一个字符;
ch+=key那句可以表示为ch=ch+key,就是加密的操作之一;也就是加一个字符或者常数;
if那句就是判断加密后有没有超出字母的范围;
ch-=26等效于ch=ch-26,假如说if语句为真就执行这句代码,那么就减去26,从而达到加密的效果,26是字母的所有个数;
最后那句就是把加密后的字符放到fp1指针指向的加密文件。
我举个例子,比如说key=5.你取到源文件一个字符‘Y’,那最后加密文件就是‘D’,这就是加密了。
while那句的意思是只要源文件不空,一直输入字符,每次一个字符;
ch+=key那句可以表示为ch=ch+key,就是加密的操作之一;也就是加一个字符或者常数;
if那句就是判断加密后有没有超出字母的范围;
ch-=26等效于ch=ch-26,假如说if语句为真就执行这句代码,那么就减去26,从而达到加密的效果,26是字母的所有个数;
最后那句就是把加密后的字符放到fp1指针指向的加密文件。
我举个例子,比如说key=5.你取到源文件一个字符‘Y’,那最后加密文件就是‘D’,这就是加密了。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2013-12-23
ch+=key 等价于 ch=ch+key
ch -= 26 等价于 ch =ch-26
if后面的语句跟加密有什么关系?
答:是为了判断加密后的字符是不是还在 a~z之间,比如说a的ascii码是97,z的ascii码是123,a+key的值超过123就会变成乱码了,所以再 ch-26 (26表示26个字母的意思)又落在了 97~123之间,这样就不会乱码。
while后语句是什么意思?
答:是判断从文件读取一个字符,是否已经到了文件末尾。
ch -= 26 等价于 ch =ch-26
if后面的语句跟加密有什么关系?
答:是为了判断加密后的字符是不是还在 a~z之间,比如说a的ascii码是97,z的ascii码是123,a+key的值超过123就会变成乱码了,所以再 ch-26 (26表示26个字母的意思)又落在了 97~123之间,这样就不会乱码。
while后语句是什么意思?
答:是判断从文件读取一个字符,是否已经到了文件末尾。
第2个回答 2013-12-23
ch+=key;的意思就是:ch=ch+key
ch-=26;的作用就是ch=ch-26,其中26就是字母表的长度呀(26个英文字母)。
while后面那句表示如果打开的文件不是空的。
你看看ASCII码表,很多东西就明白了!追问
ch-=26;的作用就是ch=ch-26,其中26就是字母表的长度呀(26个英文字母)。
while后面那句表示如果打开的文件不是空的。
你看看ASCII码表,很多东西就明白了!追问
if后面的语句代表什么意思呢。跟文件加密有什么关系呢
追答那句是判断ch+key以后是否是小写字母,如果不是小写字母,才执行ch-=26;把他变成小写字母!
第3个回答 2013-12-23
ch+=key;表示ch=ch+key追问
还有还几个问题呢大仙啊