当前位置: 代码迷 >> C语言 >> 密码疑惑
  详细解决方案

密码疑惑

热度:208   发布时间:2005-02-15 12:15:00.0
密码疑惑
#include<stdio.h> 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); } } 此题中问题:1、'\n'为什么不用'\r'后者才是回车啊!它们的ASCII码不同 2、谁来储存输入入的字母后再用printf逐一打出, 若理解为*p++,但char c又只能容纳一字符。
搜索更多相关的解决方案: 密码  密码  

----------------解决方案--------------------------------------------------------
为什么要用'\r'??你看题目怎么要求的啊
getchar()  用来接受输入的字符
----------------解决方案--------------------------------------------------------

此题中问题:1、'\n'为什么不用'\r'后者才是回车啊!它们的ASCII码不同 //回车与换行是两个不同的ASCII码,每敲击一次"Enter"键,都产生"\n","\r",不是一个概念,getch()与getchar()分别接收"\n","\r"并忽略另一个,这个书上都应查得到 #include<stdio.h> main() { char c; while((c=getch())=='\r') {

printf("%d",c); } } #include<stdio.h> main() { char c; while((c=getchar())=='\n') {

printf("%d",c); } } 可以这样看一下 2、谁来储存输入入的字母后再用printf逐一打出, 若理解为*p++,但char c又只能容纳一字符。 //重复使用C,并不存在“储存”以前的ASCII码,没有*p++这会事


----------------解决方案--------------------------------------------------------
我主要是想问: 若输入china!,这个程序如何存储下这些字母后又足于输出Glmre!
----------------解决方案--------------------------------------------------------
这主要是和getchar()函数的使用有关系,还有就是键盘的缓冲区的问题!
getchar()函数在碰到回车时才会结束,你输入"china!"最后回车才执行完c=getchar();
这时候前面的字符都存入键盘缓冲了,而执行while时就不断的由c=getchar();读键盘缓冲(应该也是判断到回车结束)!!!!得到第一个字符,然后判断显示,在键盘缓冲区中删除前一个字符,再重复执行!!!
----------------解决方案--------------------------------------------------------
上帝跟班
       看的不是懂但还是谢谢了,也算是知道了和键盘缓冲区及函数有关.
                        祝你万事如意
----------------解决方案--------------------------------------------------------
  相关解决方案