| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1117 人关注过本帖
标题:一个译密码的问题
取消只看楼主 加入收藏
半兽人
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-10-26
收藏
 问题点数:0 回复次数:3 
一个译密码的问题

潭浩强那本C语言中有一个例题;译密码:既将字母变成其后第四个字母,W变成A,X变成B,Y变成C,Z变成D...非字母字符不变.如China! 变成 Glmre!
程序如下:
#include <stdio.h>
void main()
{
char c;
while ((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{
c=c+4;
if(c>'Z'&&c<='Z'+4||c>'z')
c=c-26;
}
printf("%c",c);
}
printf("\n");
}

运行结果如下:
input : China!
output: Glmre!

我的问题:为什么不是输入一个字符就输出一个密码,而是全部输完后才一次性处理?

搜索更多相关主题的帖子: 密码 
2006-11-01 11:15
半兽人
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-10-26
收藏
得分:0 
以下是引用lyf320在2006-11-2 21:41:47的发言:
#include <stdio.h>
void main()
{
char c;
while ((c=getchar())!='\n')
{
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{
c=c+4;
if(c>'Z'&&c<='Z'+4||c>'z')
c=c-26;
}
printf("%c",c);
}
printf("\n");
}
那是因为最后一个printf不包含在while循环中!

但是第一个PRINTF是在循环内的吧,既然如此,那么就应该循环一次就输出一次吧,即输入一个字符就输出一个密码

2006-11-03 14:24
半兽人
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-10-26
收藏
得分:0 
以下是引用走刀口→超在2006-11-3 10:44:00的发言:
-。-这个是LZ自己认为的吧。其实在内存中就是输入1个处理1个的!

我知道这在内存中是一一处理的,但是为什么PRINTF却不是立即反映呢?难道说PRINTF的语句是先在后台运行,然后再一起反应到显示上来的?





2006-11-03 14:27
半兽人
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2006-10-26
收藏
得分:0 
继续顶,还是不明白
2006-11-04 12:08
快速回复:一个译密码的问题
数据加载中...
 
   



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

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