----------------解决方案--------------------------------------------------------
我知道这在内存中是一一处理的,但是为什么PRINTF却不是立即反映呢?难道说PRINTF的语句是先在后台运行,然后再一起反应到显示上来的?
其实还是一个一个输出的,只是因为处理速度的关系,给人印象是一起处理完了再打印输出.
你在 printf ("%c", c); 后面加一条读取输入的函数(如getchar(),gets()之类的)或者加system ("pause");(用于程序暂停的,标准ANSI命令),你就能知道它到底是怎么运行的了.
[此贴子已经被作者于2006-11-6 12:22:20编辑过]
----------------解决方案--------------------------------------------------------
if(c>'Z'&&c<='Z'+4||c>'z')
这句是什么意思啊,为什么这样写.不懂诶~指教一下下
----------------解决方案--------------------------------------------------------
潭浩强那本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");
}
----------------解决方案--------------------------------------------------------