| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3373 人关注过本帖, 1 人收藏
标题:\r与\n的区别
只看楼主 加入收藏
lccwyj
Rank: 4
等 级:业余侠客
帖 子:71
专家分:203
注 册:2011-5-6
结帖率:66.67%
收藏(1)
已结贴  问题点数:20 回复次数:7 
\r与\n的区别
getchar()
getch()
都是按回车,前者输出ascii为10,后者为13?再次输入的时候,前者直接输入,而后者覆盖已经输出的数。
为什么?软回车和硬回车有啥区别?
2011-06-26 09:12
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:2 
微软    \r\n
苹果    \r
Unix    \n

getchar()  C标准
getch()  TC/BC/VC

getchar() 在任何平台回车都返回\n

—>〉Sun〈<—
2011-06-26 09:46
lccwyj
Rank: 4
等 级:业余侠客
帖 子:71
专家分:203
注 册:2011-5-6
收藏
得分:0 
回复 2楼 cosdos
那为什么一个是10,一个是13?都是回车!
2011-06-26 14:33
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
收藏
得分:0 
至于为啥有10和13的区别
这个还真没注意过。。。
2011-06-26 15:10
我菜119
Rank: 10Rank: 10Rank: 10
等 级:青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
收藏
得分:5 
getchar 这个函数具有回显功能,也就是我们输入的字符是可以在屏幕上看见的,这是因为这个函数是从缓冲区中读取数据的,在windows平台下,敲入的回车符会被转换为\r\n,但是写入到缓冲区中的时候会变为一个字符\n,这样getchar这个函数从缓冲区读取的就是一个\n字符,也就是换行。

而getch不具有回显的功能,直接读取输入的字符,所以不用转换,读取的正是我们敲入的回车符\r

愿用余生致力编程
2011-06-26 19:04
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:10 
2楼说的其实基本提示了原因了。

回车键应该产生的回车符(carriage return),就是 \r。ascii 码是 13
另一个更著名一点叫 换行符(linefeed 或者叫 newline),是 \n。ascii 码是 10。

标准库沿用 unix 的习惯,要求对行结束(end-of-line, eof)标志进行转换。具体在 windows 下就是
当读入 \r\n 时,吃掉 \r。在写出 \n 时,前缀一个 \r。

getch() 不是标准库的东西,遵循的要求可能不一样。

另外关于回车键的问题,可能还涉及键盘编码,和操作系统对它的处理之类的问题。一般不能一概而论。
至于为什么是这个结果,楼主可以自己想想看。如果解释不通,就是说这里用到的不止是行结束符这个一知识点。
2011-06-26 19:06
lccwyj
Rank: 4
等 级:业余侠客
帖 子:71
专家分:203
注 册:2011-5-6
收藏
得分:0 
回复 6楼 pangding
也就是说一般情况下输入回车的时候,是\r\n两个?吃掉\r,输出\n?
2011-06-26 19:14
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:3 
只能说有可能是这样。

你在终端上按一个回车和你在窗口下按一个产生的回车都有可能不是一个东西。这个和系统关系比较密切,是一个系统IO中的东西。
2011-06-26 20:15
快速回复:\r与\n的区别
数据加载中...
 
   



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

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