标题:文件移位加密法,一简单程序求解...
只看楼主
我的节拍
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2009-9-14
结帖率:90%
已结贴  问题点数:10 回复次数:7 
文件移位加密法,一简单程序求解...
#include "stdio.h"
void main()
{char ch;
    while((ch=getchar())!='\n')                       问题一:这句的意思是:要求你输入一字符,只要它不等于“\n”就继续循环?“\n”就是“回车”么?
    {
        if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))             当我输入的是“空格”的时候,那么Putchar为什么也是空格呢?那我输入回车不也被getchar了?
        {
ch=ch-8;
            if((ch<'a'&&ch>='a'-8)||ch<'A')ch=ch+26;
            }
        putchar(ch);}
    while((ch=getchar())!='\n')     putchar(ch);      问题二:这句我完全不懂!什么意思啊?貌似我去掉这一句照样运行啊?既然第四句的getchar要求输入字符,                                                        难道这个getchar你就不该给它输入字符?
    putchar('\n');
    }


[ 本帖最后由 我的节拍 于 2009-9-23 09:24 编辑 ]
搜索更多相关主题的帖子: 求解 移位 文件 
2009-09-23 08:51
我的节拍
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2009-9-14
得分:0 
我按书上的输入字符 Tuibo C 下面得到的是Lmjtg U      ,getchar要求输入的是一个字符,因为有while循环所以可以输入多个字符直到你碰到“\n”,假设碰到了“\n”那就跳出第一个while,那么到了另一个 while循环 那不是又要getchar?把我搞晕了.....望高人耐心解释下,谢谢...  怎么确定我最后按的回车不被getchar呢?
2009-09-23 09:23
chenaiyuxue
Rank: 5Rank: 5
来 自:山东滨州
等 级:职业侠客
帖 子:334
专家分:370
注 册:2008-5-20
得分:2 
问题1:你的理解是正确的。当你输入空格的时候,if语句都不会执行,所以会被putchar原样输出。
问题2:没看明白这段的作用是什么,感觉没什么用,直接去掉就行

你是雪,我是尘埃,相遇是意外;你坠落,在我胸怀,流进我血脉。
2009-09-23 10:19
萦怀。泪
Rank: 1
等 级:新手上路
帖 子:2
专家分:4
注 册:2009-9-22
得分:3 
#include "stdio.h"
void main()
{
    char ch;
    while((ch=getchar())!='\n')                        
    {
        if((ch>='a'&&ch<='z')||(ch>='A'&&ch<='Z'))
/*只有你输入的字符在a-z或者A-Z之间,if语句才被执行,除此之外的字符,像空格之类的将被直接执行putchar(ch)语句*/            
        {
        ch=ch-8;
            if((ch<'a'&&ch>='a'-8)||ch<'A')
             ch=ch+26;
         }
        putchar(ch);
    }
    while((ch=getchar())!='\n')   /*这句我也不明白什么意思 好像是要连续输入两次才可以结束程序,更或者是要让第一行输入的字符加密,第二行不加密 */   
        putchar(ch);
    putchar('\n');
}
2009-09-23 10:51
beyond_one
Rank: 4
等 级:业余侠客
帖 子:61
专家分:206
注 册:2009-6-26
得分:2 
第一个while循环处理字符,如果是字母则进行移位,否则按原字符输出
第二个while好像没什么实际作用,可以去掉

putchar('\n');可以换成getch();看结果
2009-09-23 10:58
jks864q
Rank: 2
等 级:论坛游民
帖 子:2
专家分:10
注 册:2009-9-23
得分:0 
不懂……
2009-09-23 14:29
C语言学徒
Rank: 2
来 自:NamKing
等 级:论坛游民
帖 子:51
专家分:22
注 册:2009-2-27
得分:3 
回复 楼主 我的节拍
问题2:楼主的代码可以这样试下,
输入abcdef 回车时stuvw 然后再输入abcdef回车后下一行显示的是abcdef    这两句代码的作用就是现在你输入的原始密码是什么,意思是让你知道自己输入的是什么,并给你显示出来!
2009-09-23 15:55
我的节拍
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2009-9-14
得分:0 
回复 7楼 C语言学徒
谢谢啦...
2009-09-23 16:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-286505-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 1.444665 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved