admin 管理员组

文章数量: 1184232


2024年3月9日发(作者:1password)

“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别

换行(n)就是光标下移一行却不会移到这一行的开头,回车(r)就是回到当前行的开头却不向下移一行.

Enter键按下后会执行nr这样就是我们看到的一般意义的回车了,所以你用16进制文件查看方式看一个

文本,就会在行尾发现"nr"

在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个

字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2

秒里面,又有新的字符传过来,那么这个字符将丢失。

于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做―回车‖,

告诉打字机把打印头定位在左边界;另一个叫做―换行‖,告诉打字机把纸向下移一行。

这就是―换行‖和―回车‖的来历,从它们的英语名字上也可以看出一二。

后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在

每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

Unix系统里,每行结尾只有―<换行>‖,即―n‖;

Windows系统里面,每行结尾是 ―<换行><回车>‖,即―nr‖;

Mac系统里,每行结尾是―<回车>‖。一个直接后果是,Unix/Mac 系统下的文件在Windows里打开

的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出

一个^M 符号。

c语言编程时(windows系统)

r 就是return

回到本行行首 这就会把这一行以前的输出覆盖掉

如:

int main() {

cout << "hahaha" << "r" << "xixi" ;

}

最后只显示 xixi 而 hahaha 背覆盖了

n 是回车+换行 把光标先移到行首,然后换到下一行,也就是下一行的行首位置

int main() {

cout << "hahaha" << "n" << "xixi" ;

}

则显示

hahaha

xixi

ASCII表

ASCII

控制字符

ASCII

控制字符

ASCII

控制字符

0

1

2

3

4

5

NUT

SOH

STX

ETX

EOT

ENQ

32

33

34

35

36

37

(space)

#

$

%

64

65

66

67

68

69

@

A

B

C

D

E

ASCII

96

97

98

99

100

101

控制字符

a

b

c

d

e

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

NUL

ACK

BEL

BS

HT

LF

VT

FF

CR

SO

SI

DLE

DCI

DC2

DC3

DC4

NAK

SYN

TB

CAN

EM

SUB

ESC

FS

GS

RS

US

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

&

,

(

)

*

+

,

-

.

/

0

1

2

3

4

5

6

7

8

9

:

;

<

=

>

?

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

F

G

H

I

J

K

L

M

N

O

P

Q

R

X

T

U

V

W

X

Y

Z

[

]

^

SYN

空转同步

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

f

g

h

i

j

k

l

m

n

o

p

q

r

s

t

u

v

w

x

y

z

{

|

}

~

DEL

VT

垂直制表

SOH

标题开始

FF

走纸控制

STX

正文开始

CR

回车

ETX

正文结束

SO

移位输出

EOY

传输结束

SI

移位输入

ENQ

询问字符

DLE

空格

ACK

承认

BEL

报警

BS

退一格

LF

换行

DC1

设备控制

1

DC2

设备控制

2

DC3

设备控制

3

NAK

否定

ETB

信息组传送结束

CAN

作废

EM

纸尽

SUB

换置

ESC

换码

FS

文字分隔符

GS

组分隔符

RS

记录分隔符

US

单元分隔符

DEL

删除

HT

横向列表

DC4

设备控制

4

软回车(shift+enter)与硬回车(enter)


本文标签: 字符 换行 回车 结尾