社区
C语言
帖子详情
回车到底怎么回事
wayne92
2006-03-27 11:09:02
在开复论坛上面看到由人问这个问题,我也不是很清楚.请高手指教!
我C编程时发现,回车有玄妙之处。
用getch()接收回车键,收到的是' \r ';
用getchar()接收回车键,收到的却是 ' \n '
我听说回车键包含了 ' \n ' 和 ' \r '
又知道getchar()输入的字符要通过回车才送入内存,
这么说用getchar()接收回车时,回车键是“一键双叼”,既作字符输入,又送内存
这样一来我就越来越糊涂了
搞不懂 ' \r ' 和 ' \n ' 是怎么来的
...全文
407
15
打赏
收藏
回车到底怎么回事
在开复论坛上面看到由人问这个问题,我也不是很清楚.请高手指教! 我C编程时发现,回车有玄妙之处。 用getch()接收回车键,收到的是' \r '; 用getchar()接收回车键,收到的却是 ' \n ' 我听说回车键包含了 ' \n ' 和 ' \r ' 又知道getchar()输入的字符要通过回车才送入内存, 这么说用getchar()接收回车时,回车键是“一键双叼”,既作字符输入,又送内存 这样一来我就越来越糊涂了 搞不懂 ' \r ' 和 ' \n ' 是怎么来的
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
lei001
2006-03-28
打赏
举报
回复
感觉上,\n=\n+\r
Rick_ang
2006-03-28
打赏
举报
回复
在汇编里就明白了,回车是包括两个操作, 分别输出0Ah,0Dh,回车与换行,回车是把光标移动到行首,换行是把光标移到下一行
hustcslhb
2006-03-28
打赏
举报
回复
我觉得这两个函数返回的编码都不一样
一个是键盘扫描码,一个是得到的ASCII编码
不过楼上的说的,汇编中“0A0D”,回车,换行确实是有区别的,这也没错
mp6
2006-03-28
打赏
举报
回复
mark
jixingzhong
2006-03-28
打赏
举报
回复
回车 ....换行 ...回车换行....
注意一下就可以了 ~
一般的回车都是说的回车换行,
但是这个还是有区别的 ....
知道一下就可以了。
yinqing_yx
2006-03-28
打赏
举报
回复
多谢 学习了~~~~~~~
popy007
2006-03-28
打赏
举报
回复
在非unix的系统中,比如msdos,\n会被系统自动转换成\n\r,
而unix等操作系统不会这么做。
逸学堂
2006-03-28
打赏
举报
回复
\n\r在可以转换为\n
Wolf0403
2006-03-28
打赏
举报
回复
文本输入应该使用面向 ascii 流的操作函数,包括 printf / scanf,fgets / fputs 和 fgetc 等等。这些操作函数会自动处理从 '\r\n' 到 '\n' 的转换。
getch 不是一个面向文本流的操作函数。getch 是面向终端的,无缓冲操作。Win32 系统它在 conio.h,Unix 系统中它在 curses 库中。不应该使用它来处理文本流。
jinjiajie
2006-03-28
打赏
举报
回复
...记得是在WINDOWS下是2个符号,LINUX下就只有一个0AH了
gongzilv
2006-03-28
打赏
举报
回复
惭愧 思维有点狭隘。
chencyy1
2006-03-28
打赏
举报
回复
晕!我的天啊!好复杂!
wuchangqian
2006-03-28
打赏
举报
回复
回答一个C语言--回车是什么的问题!
回答你这个问题首先得从定义上讲起!因为回车本身只是一个定义的键名。换句话说就象你的名字。你要知道的不是他是什么东西。而是在什么环境下代表什么意思。从电子学的角度讲就是它产生了有别于其他键的数字信号!至于信号本身它到底是 多少(是0001111还是111000)那是无关紧要的。而从编译的角度讲它产生什么样的机器代码?是由编译系统+芯片的指令说了算的。这个东西在电路的级别上理解就是:我遇到回车产生的信号触发了什么?下一步该做什么?学过数字电路的人都知道,逻辑上的驱动和可控制的输入共同决定你想要的结果!回到问题本身。你的操作并不是你所见的操作。通过几层的透明处理,事实上你想得到的是什么自己都很模糊!而你问的却是为什么得出不同的结果!换句话说。你的操作就象你叫令外一个人去收集一个人的资料。至于你叫什么人去收集。你想知道被收集人的什么资料你自己也不清楚!C语言本身是一个抽象的集合。它抽象问题>抽象事物(当然他们可以有机统一,我在这里所说的是我们大家通俗的理解)所以它面象过程。学习C的时候你不是一味要知道它抽象出来的结果是什么,而是要明白它抽象的方法。就象一个数学函数你要知道的不能只是函数值而是函数本身。它是怎么将一个数映射为另一个数。就象你问题中所叙述:
用getch()接收回车键,收到的是' \r ';
用getchar()接收回车键,收到的却是 ' \n '
而你听说回车键包含了 ' \n ' 和 ' \r '
可是当我问你getch()和getchar()是什么?你会怎么回答我?简单的说它们是一个函数或者说是一个操作。甚至你可以说它们是机器在运行过程中处理数据的一个小系列(因为它们的机器码相对来说是比较短的)。当然这是我期待的回答。如果说你的回答是:这是我实现某个目的的一个工具。那也可以。不过在C语言区我很失望听到这个---为什么你会知道的。而且在你不是很明白你的目的的时候不要问两者的区别到底是为什么!
C语言是一种语言。getchar()~~;和getch()~~~;是函数。严格说是一个操作序列!就是我所比方的你托的那个人做的收集的操作。而回车是你想知道的那个人。而你想知道它什么你没跟给你拜托的人getchar()和getch()讲清楚。(事实上也讲不清楚--因为即使你将清楚了他们也会很任性地给你他们想知道的——而不是你想知道的)。那么到现在就可以把你的问题转化为getchar()和getch()他们究竟进行了什么操作———在C中知道它进行了什么操作比知道它得到什么结果更重要——因为它面象过程。关于这两个问题我可以在接下去的时间讲的很清楚。可是我讲了,楼主和诸位捧楼主的兄弟姐妹未必认为是对的或者说在这放面MSDN比我要有权威。但是有一点必须指出。各位在此留下芳名的弟兄。为何没能把C中的抽象讲出来。换句话说为何没把解决问题的步骤讲出来?因为笔者小人区区在下我始终坚持C 的“四项基本原则”1;坚持抽象简单化。2;坚持问题步骤化。3;坚持程序程序化。4;坚持不住就退化。也就是说在回答楼主的时候,为什么不告诉他C语言的精髓就是一步一步来然后过程话呢?如果有人直接说出这两个函数的功能那说明他学到了C 的语法和用法。如果有人说出他们是怎么通过编译然后在什么机器上是怎么实现的。它们在操作系统的调控下怎么把数字通过人机对话接口放映出来。说明他学到了除C语言之外的相关计算机技术的知识。如果有人可以把楼主的问题分成一个个较之较小较简单的问题然后引导许多人来处理他得出的“二级问题”那他可以是一个合格的架构师。我欢迎他来微软应聘架构师。如果有人写一个很完整的正确的程序向楼主展现问题那我也欢迎他来微软来应聘程序员。如果有人说:我们来共同学习。那他应该得到我们大家共同的关注和灌注。如果有人说MSDN上有那他肯定是路过的要不就是无聊的小程序员在打发上班煎熬着的时间——我如果知道怎么联系他的主管————我建议他应该被***。如果有人打几个很酷的M A R K字母那我可以知道他学过几天英语。如果有人长篇大论而且论的东西虽然不是入木三分但也不乏颇有见地。那我不会认为他很空。相反我会觉得。中国软件业的新时代将要到来!因为那种山雨欲来风满楼,那种巨人将要诞生的力量。会在近乎狂妄却言之在理的字里行间隐隐约约。闪闪烁烁。
wi1son
2006-03-27
打赏
举报
回复
\n 代表:换行,将当前位置移到下一行的开头
\r 代表:回车(但不换行),将当前位置移到本行开头,即返回到本行最左端(第1列)
yinqing_yx
2006-03-27
打赏
举报
回复
// crt_getch.c
// compile with: /c
/* This program reads characters from
* the keyboard until it receives a 'Y' or 'y'.
*/
#include <conio.h>
#include <ctype.h>
int main( void )
{
int ch;
_cputs( "Type 'Y' when finished typing keys: " );
do
{
ch = _getch();
ch = toupper( ch );
} while( ch != 'Y' );
_putch( ch );
_putch( '\r' ); /* Carriage return */ 回车
_putch( '\n' ); /* Line feed */ 换行
}
MSDN上的诠释程序,上面可以看出一点眉目,我对这个也不是很清楚,共同学习~~~~
Word中换行符与
回车
符(软
回车
与硬
回车
)
Word里面有两种换行标志,一种是向下的箭头,一种是左拐的箭头。这两种符号表示的意思是不一样的。如图: 直的箭头是“软
回车
”,弯的箭头是硬
回车
。 软
回车
的快捷键是:shift+
回车
。 代码格式:^l,这个是小写的L,不是竖,表示换行 硬
回车
的快捷键是:直接按下
回车
。 代码格式:^p,表示
回车
我们按下软
回车
,可以发现文字换行但是不分段,也就是说,你中间按了软
回车
,那么,上下文之...
word
回车
后间距太大_word编辑按
回车
换行上下间距好大
怎么回事
2016-08-12 17:45齐斯琴 客户经理批量删除Word中
回车
的方法(一)批量删除Word中
回车
的方法有时候我们从网页上复制文章到Word中时,往往会带有好多向下箭头的符号,这就是软
回车
符号(Word中软
回车
是同时按住shift+enter得来的),如何才能删除这些软
回车
符号呢?当然可以手动的一个个删,但实在太麻烦了,我们可以采取批量删除的方法。点击菜单栏中的“编辑”→“替换” ,在“查找...
终于搞懂了
回车
与换行的区别
转载于:http://www.pythontab.com/html/2017/linuxkaiyuan_0115/1116.html 关于换行和
回车
其实平时我们不太在意,所以关于两者的区别也不太清楚,在平时开发时可能会遇到一些文件处理的问题,放到不同的操作系统上出现各种坑。那么
回车
和换行
到底
有哪些区别呢?今天咱们就来总结一下。 1. 由来 在计算机还没有出现之前,有一种叫做电传打
回车
、换行、
回车
换行、硬
回车
以及软
回车
回车
、换行、
回车
换行、硬
回车
以及软
回车
要想一句话说清楚它们之间的关系,不太简单。但认真看完后,会发现它们之间的关系其实也挺简单的。
回车
、换行与
回车
换行 英文缩写 对应按键 英文全称 中文名称 解释 转义表达式 使用平台 CR return Carriage Return
回车
(符) \r1 Mac OS 早期版本 LF Enter Line Feed 换行(符) 将纸张 ...
Word中硬
回车
与软
回车
的区别和用法
硬
回车
:是在Word中按
回车
键(“Enter”键)产生的那个小弯箭头(即:),官方名称是段落标记,占两个字节。硬
回车
在换行的同时也起着段落分隔的作用。硬
回车
在Word或者WPS中代码“^p(即:英文字母p)”。软
回车
:是在Word中按“Shift+Enter”键产生的那个直箭头(即:↓),官方名称是手动换行符,只占一个字节。在字处理软件中与软
回车
相对。软
回车
是word为适应网页的格式而自动对文字采...
C语言
69,371
社区成员
243,080
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章