回车与换行回车与换行.docx
《回车与换行回车与换行.docx》由会员分享,可在线阅读,更多相关《回车与换行回车与换行.docx(18页珍藏版)》请在冰豆网上搜索。
![回车与换行回车与换行.docx](https://file1.bdocx.com/fileroot1/2023-6/15/167ab4ac-4636-46ee-b6d8-21e9ed0dc72f/167ab4ac-4636-46ee-b6d8-21e9ed0dc72f1.gif)
回车与换行回车与换行
“回车”(carriagereturn)和“换行”(linefeed)这两个概念的来历和区别
换行(\n)就是光标下移一行却不会移到这一行的开头,回车(\r)就是回到当前行的开头却不向下移一行.
Enter键按下后会执行\n\r这样就是我们看到的一般意义的回车了,所以你用16进制文件查看方式看一个文本,就会在行尾发现"\n\r"
在计算机还没有出现之前,有一种叫做电传打字机(TeletypeModel33)的玩意,每秒钟可以打10个字符。
但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。
要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。
于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。
一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。
这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。
后来,计算机发明了,这两个概念也就被般到了计算机上。
那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。
于是,就出现了分歧。
Unix系统里,每行结尾只有“<换行>”,即“\n”;
Windows系统里面,每行结尾是“<换行><回车>”,即“\n\r”;
Mac系统里,每行结尾是“<回车>”。
一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。
c语言编程时(windows系统)
\r就是return回到本行行首这就会把这一行以前的输出覆盖掉
如:
intmain(){
cout<<"hahaha"<<"\r"<<"xixi";
}
最后只显示xixi而hahaha背覆盖了
\n是回车+换行把光标先移到行首,然后换到下一行,也就是下一行的行首位置
intmain(){
cout<<"hahaha"<<"\n"<<"xixi";
}
则显示
hahaha
xixi
ASCII表
ASCII值
控制字符
ASCII值
控制字符
ASCII值
控制字符
ASCII值
控制字符
0
NUT
32
(space)
64
@
96
、
1
SOH
33
!
65
A
97
a
2
STX
34
”
66
B
98
b
3
ETX
35
#
67
C
99
c
4
EOT
36
$
68
D
100
d
5
ENQ
37
%
69
E
101
e
6
ACK
38
&
70
F
102
f
7
BEL
39
71
G
103
g
8
BS
40
(
72
H
104
h
9
HT
41
)
73
I
105
i
10
LF
42
*
74
J
106
j
11
VT
43
+
75
K
107
k
12
FF
44
76
L
108
l
13
CR
45
-
77
M
109
m
14
SO
46
.
78
N
110
n
15
SI
47
/
79
O
111
o
16
DLE
48
0
80
P
112
p
17
DCI
49
1
81
Q
113
q
18
DC2
50
2
82
R
114
r
19
DC3
51
3
83
X
115
s
20
DC4
52
4
84
T
116
t
21
NAK
53
5
85
U
117
u
22
SYN
54
6
86
V
118
v
23
TB
55
7
87
W
119
w
24
CAN
56
8
88
X
120
x
25
EM
57
9
89
Y
121
y
26
SUB
58
:
90
Z
122
z
27
ESC
59
;
91
[
123
{
28
FS
60
<
92
\
124
|
29
GS
61
=
93
]
125
}
30
RS
62
>
94
^
126
~
31
US
63
?
95
—
127
DEL
NUL
VT垂直制表
SYN空转同步
SOH标题开始
FF走纸控制
ETB信息组传送结束
STX正文开始
CR回车
CAN作废
ETX正文结束
SO移位输出
EM纸尽
EOY传输结束
SI移位输入
SUB换置
ENQ询问字符
DLE空格
ESC换码
ACK承认
DC1设备控制1
FS文字分隔符
BEL报警
DC2设备控制2
GS组分隔符
BS退一格
DC3设备控制3
RS记录分隔符
HT横向列表
DC4设备控制4
US单元分隔符
LF换行
NAK否定
DEL删除
软回车(shift+enter)与硬回车(enter)
硬回车(hardReturn)就是普通我们按回车产生的,它在换行的同时也起着段落分隔的作用。
软回车(SoftReturn)是用Shift+Enter产生的,它换行,但是并不换段,即前后两段文字在Word中属于同一“段”。
在应用格式时你会体会到这一点。
其实我们很多人经常从网页中复制文章粘贴到Word文档中,就可以看到一种向下的箭头的回车符,另外正常输入的向左转弯的箭头的回车符,如下图就是从网上Copy的文字资料:
图1
上图(图1)中用红色表明了两种回车,现在大家应该都认识清楚了吧。
我刚才在中搜索了关键字“Word硬回车软回车”,结果发现了一个笑话:
A网友说:
什么是软回车,什么是硬回车?
B网友回答说:
你家里的键盘的回车键是不是坏了啊,我猜你可能是用来换行用的或者是其他。
通过用其他方式进行与回车类似的操作我很少听说过。
建议重新买个键盘,也不怎么贵,能用且操作顺畅最好!
哈哈,A是不懂就问,B呢,不懂装懂,还闹出大笑话。
那么到底怎么理解软硬回车呢?
按enter生成的叫硬回车,独立成段;shift+enter是软回车,只作分行处理,不独立成段,他们作段落设置时是有区别的。
前面讲到,如果从网页中整段文章Copy到Word中来,大多数情况下会产生软回车(是因为网页设计时,段落与段落间是使用Shift+Enter进行分段的),那么如果我们能否将软回车全部换成硬回车呢?
回答是肯定的,方法有二。
方法一:
就是将软回车符删除,然后按enter键进行硬回车即可。
至于怎么删除软回车符,可以将光标置于其前面,然后按Delete键,或通过退格键backspace一个一个软回车符删除,这样的速度显然很慢。
要快的方法就看方法二了。
方法二:
我们知道Word中有查找替换的功能,那么想:
是否可以通过将硬回车符替换软回车符呢?
这也是肯定的,Word这么强大的办公软件,就是怕我们不会发现。
哈哈~请看下面的步骤:
1、找到编辑菜单下的替换命令或按快捷键(Ctrl+H),弹出如下对话框:
图2
还记得自己刚学会使用查找替换功能吗?
那时我们都会在“查找内容”后的文本框中输入“Computer”,然后在“替换为”后的文本框中输入“电脑”,之后点击下面的“替换全部”按钮,这样我们就把整篇文章的“Computer”替换成“电脑”二字了。
那么我们想,如果在“查找内容”后的文本框中输入“软回车符”,然后在“替换为”后的文本框中输入“硬回车符”,那我们的目的不就达到了吗。
但是软回车符和硬回车符是放不进文本框中的,其实你单击“高级”按钮,你会发现如下图所示,下边有很多选项和格式及特殊格式按钮选项。
图3
当你点击特殊字符按钮,会弹出一菜单,如下图所示:
图4
这时只要你将光标置于“查找内容”之后的文本框中,然后选择上图中的“手动换行符”,即软回车符,文本框中显示“^l”;再将光标置于“替换为”之后的文本框中,然后选择上图中的“段落标记”,即硬回车符,文本框中显示“^p”,如下图所示:
图5
然后单击“全部替换”,这样整篇文章的软回车都换成了硬回车了。
哈哈,大功告成!
请各位试试看,并着磨查找替换的其他运用技巧。
键盘上只有一种回车键Enter,但却有两种不同性质的换行标记,不能不说是一个奇迹。
我们常用的回车是硬回车,就是在word中敲击Enter键产生的那个弯曲的小箭头,占两个字节。
这种回车可以有效地把段落标记出来分清楚。
在两个硬回车之间的文字自成一个段落,可以对它单独设置段落标记而不用担心其他段落受到影响。
这也是我们习惯用硬回车的原因:
排版方便。
但是硬回车也给我们带来了麻烦。
你如果是网页设计者,或者是论坛游侠,一定有这样的经历:
当你打算换行时,换出的行却实在不能恭维,行间距太大了!
其实这和硬回车的原理是一样的,只不过在word等文本编辑器中没有显示出它的“本来面目”。
不过这样的排版的确造成了不小的困难,这时我们就得请出硬回车的兄弟:
软回车。
软回车只占一个字节,在word中是一个向下的箭头。
如果你从很复杂的网页中向word中复制过文字的话,对它一定不会陌生。
但是想在word中直接输入软回车可不是那么容易的。
因为软回车不是真正的段落标记,它只是另起了一行,不是分段。
所以它不是很利于文字排版,因为它无法作为单独的一段被赋予特殊的格式。
但是尽管如此,它在网页设计中还是具有举足轻重的地位的。
软回车能使前后两行的行间距大幅度缩小,因为它不是段落标记,要和法定的段落标记——硬回车区别出来。
硬回车的html代码是
..
,段落的内容就夹在里面,而软回车的代码很精悍:
。
因此在网页中想用到软回车,只需切换到代码页面,键入软回车的代码即可。
下面我讲一下不同编辑器文字互相拷贝时回车的转化情况。
地球人都知道的,网页的文字如果复制到word中,则硬回车变为弯曲的箭头,软回车变为向下的箭头。
结果造成习惯用word编辑文本的朋友很不习惯很不舒服的情况。
word中的文本复制到网页中也是同样的道理。
可以说word和网页比较兼容的,要不怎么会有“保存为web页”这种选项呢?
记事本也是大家摸的比较多的编辑器。
但是近年来随着社会发展外加记事本的种种弊端,许多人都将其打入冷宫。
对此我只能表示遗憾,因为记事本本身的功能不丰富就是别的编辑器所取代不了的优点。
大家再次将网页的文字复制时,不妨粘贴到记事本里试试。
哈哈,不管网页设计者用的是什么回车,现在都变成一种回车了!
怎么,你不信?
那就看看吧:
软回车变成了普通的回车,硬回车变成了两个普通的回车。
你再从记事本里复制文字到word,记事本里的回车无一例外全都变成了硬回车!
你再再从记事本里复制文字到网页编辑器,所有回车就都变成软回车了!
附录DASCII字符集
1.标准ASCII字符集
ASCII值
字符控制字符
ASCII值
字符
ASCII值
字符
ASCII值
字符
000
null
NULL
032
space
064
@
096
`
001
☺
SOH
033
!
065
A
097
a
002
☻
STX
034
"
066
B
098
b
003
ETX
035
#
067
C
099
c
004
EOT
036
$
068
D
100
d
005
ENQ
037
%
069
E
101
e
006
ACK
038
&
070
F
102
f
007
beep
BEL
039
'
071
G
103
g
008
backspace
BS
040
(
072
H
104
h
009
◙
HT
041
)
073
I
105
i
010
linefeed
LF
042
*
074
J
106
j
011
♂
VT
043
+
075
K
107
k
012
♀
FF
044
076
L
108
l
013
carriagereturn
CR
045
-
077
M
109
m
014
♫
SO
046
.
078
N
110
n
015
☼
SI
047
/
079
O
111
o
016
►
DLE
048
0
080
P
112
p
017
◄
DC1
049
1
081
Q
113
q
018
↕
DC2
050
2
082
R
114
r
019
‼
DC3
051
3
083
S
115
s
020
¶
DC4
052
4
084
T
116
t
021
§
NAK
053
5
085
U
117
u
022
▄
SYN
054
6
086
V
118
v
023
↨
ETB
055
7
087
W
119
w
024
↑
CAN
056
8
088
X
120
x
025
↓
EM
057
9
089
Y
121
y
026
→
SUB
058
:
090¦
Z
122
z
027
←
ESC
059
;
091
[
123
{
028
∟
FS
060
<
092
\
124
¦
029
↔
GS
061
=
093
]
125
}
030
▲
RS
062
>
094
^
126
~
031
▼
US
063
?
095
_
127
del
2.扩充ASCII字符集
ASCII值
字符
ASCII值
字符
ASCII值
字符
ASCII值
字符
128
Ç
160
á
192
└
224
α
129
ü
161
í
193
┴
225
β
130
é
162
ó
194
┬
226
Г
131
â
163
ú
195
├
227
π
132
ä
164
ñ
196
─
228
Σ
133
à
165
Ñ
197
┼
229
σ
134
å
166
ª
198
╞
230
μ
135
ç
167
°
199
╟
231
τ
136
ê
168
¿
200
╚
232
φ
137
ë
169
⌐
201
╔
233
θ
θ138
è
170
202
╩
234
Ω
139
ï
171
½
203
╦
235
δ
140
î
172
¼
204
╠
236
∞
141
ì
173
¡
205
═
237
∮
142
Ä
174
«
206
╬
238
∈
143
Å
175
»
207
╧
239
∩
144
É
176
░
208
╨
240
≡
145
æ
177
▒
209
╤
241
±
146
Æ
178
▓
210
╥
242
≥
147
ô
179
│
211
╙
243
≤
148
ö
180
┤
212
╘
244
⌠
149
ò
181
╡
213
╒
245
⌡
150
û
182
╢
214
╓
246
÷
151
ù
183
╖
215
╫
247
≈
152
ÿ
184
╕
216
╪
248
°
153
Ö
185
╣
217
┘
249
154
Ü
186
║
218
┌
250
·
155
¢
187
╗
219
▊
251
√
156
£
188
╝
220
▀
252
ⁿ
157
¥
189
╜
221
▌
253
²
158
Pt
190
╛
222
▐
254
■
159
∱
191
┐
223
▄
255
blank
键盘各键对应的ASCII码值
近日在写一个CLI程序,需要知道键盘各键对应的ASCII码值。
0x1鼠标左键
0x2鼠标右键
0x3CANCEL键
0x4鼠标中键
0x8BACKSPACE键
0x9TAB键
0xCCLEAR键
0xDENTER键
0x10SHIFT键
0x11CTRL键
0x12MENU键
0x13PAUSE键
0x14CAPSLOCK键
0x1BESC键
0x20SPACEBAR键
0x21PAGEUP键
0x22PAGEDOWN键
0x23END键
0x24HOME键
0x25LEFTARROW键
0x26UPARROW键
0x27RIGHTARROW键
0x28DOWNARROW键
0x29SELECT键
0x2APRINTSCREEN键
0x2BEXECUTE键
0x2CSNAPSHOT键
0x2DINSERT键
0x2EDELETE键
0x2FHELP键
0x90NUMLOCK键
A至Z键与A–Z字母的ASCII码相同:
值描述
65A键
66B键
67C键
68D键
69E键
70F键
71G键
72H键
73I键
74J键
75K键
76L键
77M键
78N键
79O键
80P键
81Q键
82R键
83S键
84T键
85U键
86V键
87W键
88X键
89Y键
90Z键
0至9键与数字0–9的ASCII码相同:
值描述
480键
491键
502键
513键
524键
535键
546键
557键
568键
579键
下列常数代表数字键盘上的键:
值描述
0x600键
0x611键
0x622键
0x633键
0x644键
0x655键
0x666键
0x677键
0x688键
0x699键
0x6AMULTIPLICATIONSIGN(*)键
0x6BPLUSSIGN(+)键
0x6CENTER键
0x6DMINUSSIGN(–)键
0x6EDECIMALPOINT(.)键
0x6FDIVISIONSIGN(/)键
下列常数代表功能键:
值描述
0x70F1键
0x71F2键
0x72F3键
0x73F4键
0x74F5键
0x75F6键
0x76F7键
0x77F8键
0x78F9键
0x79F10键
0x7AF11键
0x7BF12键
0x7CF13键
0x7DF14键
0x7EF15键
0x7FF16键