| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 710 人关注过本帖
标题:密码疑惑
只看楼主 加入收藏
abcc
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-1-22
收藏
 问题点数:0 回复次数:5 
密码疑惑
#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又只能容纳一字符。
搜索更多相关主题的帖子: 密码 密码 
2005-02-15 12:15
smyzxk
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2005-2-15
收藏
得分:0 
为什么要用'\r'??你看题目怎么要求的啊
getchar()  用来接受输入的字符
2005-02-15 15:12
Knocker
Rank: 8Rank: 8
等 级:贵宾
威 望:47
帖 子:10454
专家分:603
注 册:2004-6-1
收藏
得分:0 

此题中问题: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++这会事


九洲方除百尺冰,映秀又遭蛮牛耕。汽笛嘶鸣国旗半,哀伤尽处是重生。     -老K
治国就是治吏。礼义廉耻,国之四维。四维不张,国之不国。   -毛泽东
2005-02-16 01:17
abcc
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-1-22
收藏
得分:0 
我主要是想问: 若输入china!,这个程序如何存储下这些字母后又足于输出Glmre!
2005-02-16 21:06
天使预备役
Rank: 2
等 级:论坛游民
威 望:3
帖 子:670
专家分:10
注 册:2004-4-6
收藏
得分:0 
这主要是和getchar()函数的使用有关系,还有就是键盘的缓冲区的问题!
getchar()函数在碰到回车时才会结束,你输入"china!"最后回车才执行完c=getchar();
这时候前面的字符都存入键盘缓冲了,而执行while时就不断的由c=getchar();读键盘缓冲(应该也是判断到回车结束)!!!!得到第一个字符,然后判断显示,在键盘缓冲区中删除前一个字符,再重复执行!!!

差点把你忘了...
2005-02-17 17:08
abcc
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2005-1-22
收藏
得分:0 
上帝跟班
       看的不是懂但还是谢谢了,也算是知道了和键盘缓冲区及函数有关.
                        祝你万事如意
2005-02-19 23:24
快速回复:密码疑惑
数据加载中...
 
   



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

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