| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1117 人关注过本帖
标题:一个译密码的问题
只看楼主 加入收藏
林中狼
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2006-11-6
收藏
得分:0 
我想它是一个一个译的.但是因为循环还未结束而getchar还未接收输入,因而不能跳回到用户界面吧,所以你就看不到了.我想关键还是在getchar(),这个函数的问题吧.试搞一个没有它的函数看看会不会.
2006-11-06 11:48
龙紫枫
Rank: 1
等 级:新手上路
帖 子:7
专家分:0
注 册:2006-11-3
收藏
得分:0 
以下是引用半兽人在2006-11-3 14:27:01的发言:

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





其实还是一个一个输出的,只是因为处理速度的关系,给人印象是一起处理完了再打印输出.
你在 printf ("%c", c); 后面加一条读取输入的函数(如getchar(),gets()之类的)或者加system ("pause");(用于程序暂停的,标准ANSI命令),你就能知道它到底是怎么运行的了.

[此贴子已经被作者于2006-11-6 12:22:20编辑过]

2006-11-06 12:21
zmaobaby
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2007-2-4
收藏
得分:0 
if(c>'Z'&&c<='Z'+4||c>'z')
这句是什么意思啊,为什么这样写.不懂诶~指教一下下
2007-02-04 15:04
mp3aaa
Rank: 5Rank: 5
等 级:贵宾
威 望:17
帖 子:2013
专家分:8
注 册:2006-2-15
收藏
得分:0 
以下是引用半兽人在2006-11-1 11:15:29的发言:

潭浩强那本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!

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

#include <stdio.h>
void main()
{
char c;
int i=0;
while ((c=getchar())!='\n')
{ i++;
if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))
{
c=c+4;
if(c>'Z'&&c<='Z'+4||c>'z')
c=c-26;
}
printf("我第%d次输出的字符%c\n",i,c);
}
printf("不知道楼主的编译器能不能输出中文,看了这个应该可以理解了\n");
}


羊肉串 葡萄干 哈密瓜!!
2007-02-04 16:17
快速回复:一个译密码的问题
数据加载中...
 
   



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

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