| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 13666 人关注过本帖
标题:新手求教 从键盘输入几个字符(字符数不限),输出字符本身和它对应的ASCII ...
只看楼主 加入收藏
q504448903
Rank: 2
等 级:论坛游民
帖 子:5
专家分:26
注 册:2011-8-26
收藏
得分:1 
#include<stdio.h>
#include<stdlib.h>
int main()
{    int a;                                                
    printf("enter some chars:\n");
    while((a=getchar())!='\n') // 或者  while((a=getchar())!=10) 其意义一样
         {   
                printf("%c=%d\n",a,a);
         }
    system("pause");
}

按下enter键,隐含了再次操作“换行(LF)+回车(CR)”
                    LF的ASCII的值为10,CR的ASCII的值为13
2012-03-09 15:31
davidlv419
Rank: 2
等 级:论坛游民
帖 子:24
专家分:69
注 册:2009-4-30
收藏
得分:1 
回复 10楼 小猪来了
我的理解是:

在C语言中回车就是一个 LF = '\n',ASCII值为10。

而在windows的文本中 回车 = CR + LF
2012-03-09 17:35
小猪来了
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2012-2-16
收藏
得分:0 
回复 12楼 davidlv419
哦原来如此 受教了 看来要学习的还是很多啊
2012-03-09 22:37
upsate
Rank: 2
等 级:论坛游民
帖 子:14
专家分:21
注 册:2011-12-26
收藏
得分:1 
CR意思是carriage return,回车,\r,ASCII码为13

LF意思是linefeed,换行,\n,ASCII码为10

当你用一个打字机的时候,asdfghjkl;'右边的那个按钮(在计算机键盘上,就对应着那个Enter键)被按下的时候,打字机的纸张卷动一行,而纸张的水平位置并不变化。打字机上另外还有一个手柄,那个手柄是专用来“回车”的,向左搬动那个手柄的时候,装纸的结构被松开,在弹簧的作用下弹回最右边(相当于打印头回到最左边)。

所以当我们要换行的时候,实际需要两步操作,回车+换行(或者反过来),所以,在VB(含VBScript)里面有一个字符串常量叫做vbCrLf,意思就是回车+换行。CR+LF也是多种协议规定的标准行结束符(RFC0821-SMTP,RFC1939-POP,RFC2060-IMAP,RFC2616-HTTP),在DOS和Windows中,需要另起一行的时候也需要这两个字符。

但是,为什么在C语言里面只用LF(\n)就可以换行呢?因为C语言的出现就是为了写UNIX操作系统,而UNIX操作系统中以LF为行结束符,并且自动加上那个CR,以便节省一个字节的长度(这样做在当时存储容量不大的计算机上确实是有意义的,而为了不断兼容,到现在这个规定也没有改变)。在C语言中,运行库会在显示时把LF自动转换为CR+LF(注意是运行库,而不是编译器,所以即使打开EXE文件,找到对应的位置,只能找到一个0x0A的LF,而没有CR)。
2012-03-10 05:23
快速回复:新手求教 从键盘输入几个字符(字符数不限),输出字符本身和它对应的 ...
数据加载中...
 
   



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

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