Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ?

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ консоли!
Π”ΠΎΠ±Ρ€ΠΎΠ΅ врСмя суток! Вопрос ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΌΠ½Π΅ Π½Π΅ Π΄Π°Π΅Ρ‚ покоя ΡƒΠΆΠ΅ 2ΠΉ мСсяц! И Ρ‚Π°ΠΊ Ρƒ нас Π΅ΡΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅.

Π’Ρ‹Π²ΠΎΠ΄ Π² консоль ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ
Π’Ρ‹Π²ΠΎΠΆΡƒ Π² Ρ†ΠΈΠΊΠ»Π΅ Π² консольноС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Ρ…ΠΎΠ΄Ρƒ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… массива: cout 6

ИмСнно Ρ‚Π°ΠΊ, кстати, Π²Π΅Π΄ΡƒΡ‚ сСбя эти символы ΠΏΡ€ΠΈ «Ρ‚Π΅Π»Π΅Ρ‚Π°ΠΉΠΏΠ½ΠΎΠΌ» Π²Ρ‹Π²ΠΎΠ΄Π΅ функциями MS DOS.

Π±Π»ΠΎΠΊΠ½ΠΎΡ‚ ΡƒΠΌΠ΅Π΅Ρ‚ Ρ‡ΠΈΡ‚Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ \r\n
ΠΊΠΎΠ³Π΄Π° виндовс Π΄Π΅Π»Π°Π»ΠΈ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ систСмы юзали \n для ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π°, Π° Π΄Ρ€ΡƒΠ³ΠΈΠ΅ \r, поэтому, ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈ Π½Π°Ρ‡Π°Π»ΠΎΡΡŒ это всё с доса, виндовс Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΎΠ±Π° Π²ΠΈΠ΄Π°

РСшСниС

Если всС врСмя Π² ΠΊΠΎΠ½Ρ†Π΅ строки Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ,Ρ‚ΠΎ Π±ΡƒΠ΄Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· Π·Π°Ρ‚ΠΈΡ€Π°Ρ‚ΡŒΡΡ надпись,Ρ‚.Π΅. ΠΎΠ½Π° сдвинСтся ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ строки:
Hello,world!*
ΠšΡƒΡ€ΡΠΎΡ€ стоит Π½Π° ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ *.
Когда Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ, Ρ‚ΠΎ курсор сдвинСтся Π½Π° Π½Π°Ρ‡Π°Π»ΠΎ строки:
*Hello,world!
И Ρ‚ΠΎΠ³Π΄Π° ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ Ρ€Π°Π· ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎΠΆΠ΅ слово Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°Ρ‚ΠΈΡ€Π°Ρ‚ΡŒΡΡ,Π° наглядно ΠΌΡ‹ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ Π½Π΅ ΡƒΠ²ΠΈΠ΄ΠΈΠΌ.
А Ссли ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ с ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ строки, Ρ‚ΠΎ позиция курсора останСтся Π½Π° мСстС,Ρ‚ΠΎΠ»ΡŒΠΊΠΎ смСнится Π½ΠΎΠΌΠ΅Ρ€ строки:
(см рисунок Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹ΠΉ)
Π§Ρ‚ΠΎΠ±Ρ‹ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ курсор Π² Π½Π°Ρ‡Π°Π»ΠΎ,Ρ‚ΠΎ Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ полсС слова сначала Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ,Π° ΠΏΠΎΡ‚ΠΎΠΌ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки:
Π’ΠΎΠ³Π΄Π° всС Π±ΡƒΠ΄Π΅Ρ‚ приятно Π²Ρ‹Π³Π»ΡΠ΄Π΅Ρ‚ΡŒ.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»? Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„Π°ΠΉΠ» исходного ΠΊΠΎΠ΄Π°? РассмотритС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ…
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ»? Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Ρ„Π°ΠΉΠ» исходного ΠΊΠΎΠ΄Π°? РассмотритС Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ·.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ табуляция, Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ ΠΈ Ρ‚.Π΄.?
МСня интСрСсуСт Ρ‚Π°ΠΊΠΈΠ΅ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΠΊΠ°ΠΊ «Π’абуляция», «Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ» ΠΈ Ρ‚.Π΄. ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π° с ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°ΠΌΠΈ.

Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ Π·Π° Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ?
Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Π΅Ρ‚ символ \r? Π§Ρ‚ΠΎ Π΅Ρ‰Π΅ Π·Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠ° ΠΈ ΠΊΡƒΠ΄Π° ΠΎΠ½Π° возвращаСтся?

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π Π°Π±ΠΎΡ‚Π° с Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ (\r) Π² Python

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ Π² Python (β€˜r’) ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ курсор Π² Π½Π°Ρ‡Π°Π»ΠΎ строки, Π½Π΅ пСрСмСщая Π΅Π³ΠΎ Π² Π½ΠΎΠ²ΡƒΡŽ строку.

ВступлСниС

Иногда ΠΌΡ‹ ΠΏΠΎΠΏΠ°Π΄Π°Π΅ΠΌ Π² ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΊΠΎΠ³Π΄Π° Ρ…ΠΎΡ‚ΠΈΠΌ Π²Π΅Ρ€Π½ΡƒΡ‚ΡŒΡΡ ΠΊ исходной Ρ‚ΠΎΡ‡ΠΊΠ΅ Ρ‚ΠΎΠΉ ΠΆΠ΅ Π»ΠΈΠ½ΠΈΠΈ. Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΠΏΠΎΠΌΠΎΠΆΠ΅ΠΌ Π²Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΡŽ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ Π² python ΠΈΠ»ΠΈ \r Π² python.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ (\r) Π² Python?

Π­Ρ‚ΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ‚ Π½Π°ΠΌ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ курсор Π² Π½Π°Ρ‡Π°Π»ΠΎ строки, Π½Π΅ пСрСмСщая Π΅Π³ΠΎ Π½Π° Π½ΠΎΠ²ΡƒΡŽ строку.

Бпособы использования Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

ΠœΡ‹ ΠΏΠΎΠΊΠ°ΠΆΠ΅ΠΌ всС Ρ‚ΠΈΠΏΡ‹, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ β€˜\r’ Π² python.

1. ИспользованиС Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ Π² Python

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ строками.

2. ИспользованиС Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ Π² Python с символом Π½ΠΎΠ²ΠΎΠΉ строки

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ β€˜\r’ с Π½ΠΎΠ²Ρ‹ΠΌ символом строки(\n) Π² строковой ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅.

3. ИспользованиС Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ Π² python с ΠΏΡ€ΠΎΠ±Π΅Π»ΠΎΠΌ табуляции

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΡƒ ΠΈΠ»ΠΈ \r с ΠΊΠΎΠΌΠ±ΠΈΠ½Π°Ρ†ΠΈΠ΅ΠΉ табуляции ΠΈΠ»ΠΈ \t Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ строками.

4. ИспользованиС Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ Π² python, табуляции ΠΈ символа Π½ΠΎΠ²ΠΎΠΉ строки

Π’ этом ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ Π±ΡƒΠ΄Π΅ΠΌ ΡΠΌΠ΅ΡˆΠΈΠ²Π°Ρ‚ΡŒ всС символы, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ(\r), ΠΏΡ€ΠΎΠ±Π΅Π» табуляции(\t) ΠΈ символ Π½ΠΎΠ²ΠΎΠΉ строки(\n) Π² Π΄Π°Π½Π½ΠΎΠΉ строкС, ΠΈ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ Π²Ρ‹Ρ…ΠΎΠ΄Π½Ρ‹Π΅ Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‡Π΅Ρ‚ΠΊΠΎ ΠΏΠΎΠ½ΡΡ‚ΡŒ использованиС \r.

Как \r ΠΈ \n ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ΡΡ Π² Linux ΠΈ Windows

Как ΠΌΡ‹ всС Π·Π½Π°Π΅ΠΌ, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ \r для Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ ΠΈ \n для Π½ΠΎΠ²ΠΎΠΉ строки Π² Windows. Но для Ρ€Π°Π·Π½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Ρ‹Ρ… систСм ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ соглашСния. Π Π°Π·Π½ΠΈΡ†Π° проста, Ρ‚. Π΅. Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ ОБ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Π»ΠΈ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ, ΠΊΠ°ΠΊ ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ Π½ΠΎΠ²ΡƒΡŽ строку Π² тСкстС Π² ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°Ρ…. По ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π² ΠΌΠΈΡ€Π΅ Unix/Linux Π² качСствС Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° Π»ΠΈΠ½ΠΈΠΈ Π±Ρ‹Π» Π²Ρ‹Π±Ρ€Π°Π½ ΠΎΠ΄ΠΈΠ½ LF(Line feed). MS-DOS Π²Ρ‹Π±Ρ€Π°Π»Π° CR+LF, Π° Windows унаслСдовала \n Π² качСствС Π½ΠΎΠ²ΠΎΠΉ строки. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Π½Ρ‹Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ€Π°Π·Π½Ρ‹Π΅ соглашСния.

Π”ΠΎΠ»ΠΆΠ΅Π½ Π§ΠΈΡ‚Π°Ρ‚ΡŒ

Π’Ρ‹Π²ΠΎΠ΄

Π’ этом ΡƒΡ€ΠΎΠΊΠ΅ ΠΌΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ ΠΎ понятии Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ (β€˜\r’) с Π΅Π³ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡŽΡ‚ΡΡ всС способы, с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ β€˜\r’ ΠΏΠΎ – Ρ€Π°Π·Π½ΠΎΠΌΡƒ-ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π°. ВсС ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ ΠΎΠ±ΡŠΡΡΠ½ΡΡŽΡ‚ΡΡ.

Однако, Ссли Ρƒ вас Π΅ΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ сомнСния ΠΈΠ»ΠΈ вопросы, Π΄Π°ΠΉΡ‚Π΅ ΠΌΠ½Π΅ Π·Π½Π°Ρ‚ΡŒ Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² Π½ΠΈΠΆΠ΅. Π― ΠΏΠΎΡΡ‚Π°Ρ€Π°ΡŽΡΡŒ ΠΏΠΎΠΌΠΎΡ‡ΡŒ Π²Π°ΠΌ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ скорСС.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠžΡ‡Π΅Π½ΡŒ странныС Π²Π΅Ρ‰ΠΈ c Java Characters

Π’Π°ΠΉΠ½Π° ошибки коммСнтария ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ истории.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

ВступлСниС

Π—Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹, Ρ‡Ρ‚ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ являСтся допустимым Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ Java?

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ Π²ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Π² основной ΠΌΠ΅Ρ‚ΠΎΠ΄ любого класса ΠΈ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ. Если Π²Ρ‹ Π·Π°Ρ‚Π΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€

ΠΈ послС компиляции запуститС этот класс, ΠΊΠΎΠ΄ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ число 8!

А Π·Π½Π°Π΅Ρ‚Π΅ Π»ΠΈ Π²Ρ‹, Ρ‡Ρ‚ΠΎ этот ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ вмСсто этого Π²Ρ‹Π·Ρ‹Π²Π°Π΅Ρ‚ ΡΠΈΠ½Ρ‚Π°ΠΊΡΠΈΡ‡Π΅ΡΠΊΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²ΠΎ врСмя компиляции?

Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅, ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ ΠΊ синтаксичСским ошибкам. ЀактичСски, программисты часто ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ Ρ„Ρ€Π°Π³ΠΌΠ΅Π½Ρ‚Ρ‹ ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎΠ±Ρ‹ компилятор ΠΈΡ… ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΠΎΠ²Π°Π». Ρ‚Π°ΠΊ Ρ‡Ρ‚ΠΎ ΠΆΠ΅ происходит?

ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… char

Как всСм извСстно, char это ΠΎΠ΄ΠΈΠ½ ΠΈΠ· восьми ΠΏΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² Java. Π­Ρ‚ΠΎ позволяСт Π½Π°ΠΌ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ символу. НиТС ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ простой ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ символа присваиваСтся Ρ‚ΠΈΠΏΡƒ char :

На самом Π΄Π΅Π»Π΅ этот Ρ‚ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ нСчасто, ΠΏΠΎΡ‚ΠΎΠΌΡƒ Ρ‡Ρ‚ΠΎ Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв программистам Π½ΡƒΠΆΠ½Ρ‹ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов ΠΈ поэтому ΠΎΠ½ΠΈ ΠΏΡ€Π΅Π΄ΠΏΠΎΡ‡ΠΈΡ‚Π°ΡŽΡ‚ строки. КаТдоС Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ символа Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ двумя ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ ΠΏΡƒΡ‚Π°Ρ‚ΡŒ с Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌΠΈ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°ΠΌΠΈ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌΠΈ для строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ². ОбъявлСниС строки:

ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΠΎΠ΄ΠΈΠ½ ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹ΠΉ символ Π½Π° ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ‘&’ ).

ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ escape-символ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ‘\n’ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ символ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки).

Π”Π°Π²Π°ΠΉΡ‚Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅Ρ‚Π°Π»ΠΈ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Ρ‚Ρ€Π΅Ρ… Ρ€Π°Π·Π΄Π΅Π»Π°Ρ….

ΠŸΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Π΅ символы ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°Π·Π½Π°Ρ‡ΠΈΡ‚ΡŒ любой символ, Π½Π°ΠΉΠ΄Π΅Π½Π½Ρ‹ΠΉ Π½Π° нашСй ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π΅, char ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ, ΠΏΡ€ΠΈ условии, Ρ‡Ρ‚ΠΎ наши систСмныС настройки ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹ΠΉ символ ΠΈ Ρ‡Ρ‚ΠΎ этот символ доступСн для ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, клавиши Β«CancΒ» ΠΈ Β«EnterΒ» Π½Π΅ ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‚ΡΡ).

Π’ΠΈΠΏ Π΄Π°Π½Π½Ρ‹Ρ… char хранится Π² 2 Π±Π°ΠΉΡ‚Π°Ρ… (16 Π±ΠΈΡ‚), Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ состоит Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… чисСл ΠΎΡ‚ 0 Π΄ΠΎ 65 535. ЀактичСски, сущСствуСт Β«ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅Β», ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ связываСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΉ символ с ΠΊΠ°ΠΆΠ΄Ρ‹ΠΌ числом. Π­Ρ‚ΠΎ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ (ΠΈΠ»ΠΈ ΠΊΠΎΠ΄ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅) опрСдСляСтся стандартом Unicode (Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎ описанным Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Ρ€Π°Π·Π΄Π΅Π»Π΅).

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Unicode (ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅ прСдставлСниС)

ΠœΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΏΡ€ΠΈΡΠ²ΠΎΠΈΡ‚ΡŒ Unicode char Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ 4 Ρ†ΠΈΡ„Ρ€Ρ‹, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΡƒΡŽΡ‚ Π΄Π°Π½Π½Ρ‹ΠΉ символ, добавляя ΠΊ Π½Π΅ΠΌΡƒ прСфикс \u (всСгда Π² Π½ΠΈΠΆΠ½Π΅ΠΌ рСгистрС). НапримСр:

Π’ Π΄Π°Π½Π½ΠΎΠΌ случаС ΠΌΡ‹ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Unicode (ΠΈΠ»ΠΈ Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π΅ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅). ЀактичСски, ΠΏΡ€ΠΈ использовании 4 Ρ†ΠΈΡ„Ρ€ Π² ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ охватываСтся Ρ€ΠΎΠ²Π½ΠΎ 65 536 символов.

Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ escape-символы

Π’ char Ρ‚ΠΈΠΏΠ΅ Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ escape-символы, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ символов, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹Π·Ρ‹Π²Π°ΡŽΡ‚ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚ΠΈ:

\b эквивалСнтно backspace, ΠΎΡ‚ΠΌΠ΅Π½Π΅ слСва (эквивалСнтно клавишС Delete).

\n эквивалСнтно ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Ρƒ строки (эквивалСнтно клавишС Ente).

\\ равняСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΌΡƒ \ (Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ символ \ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для escape-символов).

\t эквивалСнтно Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ табуляции (эквивалСнтно клавишС TAB).

\’ эквивалСнтно ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ΅ (одинарная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈΡ‚Π΅Ρ€Π°Π» символа).

\» эквивалСнтно Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ΅ (двойная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ° ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡ΠΈΠ²Π°Π΅Ρ‚ Π»ΠΈΡ‚Π΅Ρ€Π°Π» строки).

\r прСдставляСт собой Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ (ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ символ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Π΅Ρ‚ курсор Π² Π½Π°Ρ‡Π°Π»ΠΎ строки).

\f прСдставляСт собой ΠΏΠΎΠ΄Π°Ρ‡Ρƒ страницы (Π½Π΅ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ символ, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΠΉ курсор, ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°ΡŽΡ‰ΠΈΠΉΡΡ Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ страницу Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°).

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ присвоСниС Π»ΠΈΡ‚Π΅Ρ€Π°Π»Π° ‘»‘ символу ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½Π½ΠΎ Π·Π°ΠΊΠΎΠ½Π½ΠΎ, поэтому ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

Ρ‡Ρ‚ΠΎ эквивалСнтно ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ ΠΊΠΎΠ΄Ρƒ:

ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΈ Π½Π°ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ символ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ:

Если Π±Ρ‹ ΠΌΡ‹ ΠΏΠΎΠΏΡ‹Ρ‚Π°Π»ΠΈΡΡŒ Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ escape-символ для ΠΎΠ΄ΠΈΠ½ΠΎΡ‡Π½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, со ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ:

ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ошибки Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ компилятор Π½Π΅ смоТСт Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ символов:

ΠŸΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅Π»ΠΈ строковых Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠ² прСдставлСны Π² Π΄Π²ΠΎΠΉΠ½Ρ‹Ρ… ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°Ρ…, ситуация обратная. ЀактичСски, Π²Π½ΡƒΡ‚Ρ€ΠΈ строки ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ:

Π‘ Π΄Ρ€ΡƒΠ³ΠΎΠΉ стороны, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ \» escape-символ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π΄Π²ΠΎΠΉΠ½Ρ‹Π΅ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ Π² строкС. Π˜Ρ‚Π°ΠΊ, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π΅ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅:

Π²Ρ‹Π·ΠΎΠ²Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ошибки компиляции:

ВмСсто этого Π²Π΅Ρ€Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ инструкция:

НаписаниС Java ΠΊΠΎΠ΄Π° Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Unicode

Π›ΠΈΡ‚Π΅Ρ€Π°Π»ΡŒΠ½Ρ‹ΠΉ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Unicode Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Π·Π°ΠΌΠ΅Π½Ρ‹ любой строки нашСго ΠΊΠΎΠ΄Π°. ЀактичСски, компилятор сначала ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Unicode Π² символ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ синтаксис. НапримСр, ΠΌΡ‹ ΠΌΠΎΠ³Π»ΠΈ Π±Ρ‹ ΠΏΠ΅Ρ€Π΅ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

ЀактичСски, Ссли ΠΌΡ‹ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΠΊ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΉ строкС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€:

НСсомнСнно, это бСсполСзный способ написания нашСго ΠΊΠΎΠ΄Π°. Но ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π½Π°Ρ‚ΡŒ эту Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΎΠ½Π° позволяСт Π½Π°ΠΌ ΠΏΠΎΠ½ΡΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ошибки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ (Ρ€Π΅Π΄ΠΊΠΎ) ΡΠ»ΡƒΡ‡Π°ΡŽΡ‚ΡΡ.

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Unicode для escape-символов

ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции:

Π’ Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ, компилятор ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ ΠΏΠ΅Ρ€Π΅Π΄ Π΅Π³ΠΎ ΠΎΡ†Π΅Π½ΠΊΠΎΠΉ:

Π€ΠΎΡ€ΠΌΠ°Ρ‚ Unicode Π±Ρ‹Π» ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² символ Π½ΠΎΠ²ΠΎΠΉ строки, ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ синтаксис Π½Π΅ являСтся допустимым синтаксисом для компилятора Java.

Π’Π°ΠΊΠΆΠ΅ Π² этом случаС компилятор ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ:

Ρ‡Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ошибкам Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции:

ΠŸΠ΅Ρ€Π²Π°Ρ ошибка связана с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ пСрвая ΠΏΠ°Ρ€Π° ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ Π½Π΅ содСрТит символа, Π° вторая ошибка ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΉ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ являСтся Π½Π΅Π·Π°ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹ΠΌ Π»ΠΈΡ‚Π΅Ρ€Π°Π»ΠΎΠΌ.

ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции:

ЀактичСски, компилятор ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π» число Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Unicode Π² Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ, Π²Π΅Ρ€Π½ΡƒΠ² курсор Π² Π½Π°Ρ‡Π°Π»ΠΎ строки, ΠΈ Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΎΠΉ, стало ΠΏΠ΅Ρ€Π²ΠΎΠΉ.

ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции:

Π­Ρ‚ΠΎ ΠΏΠΎΡ‚ΠΎΠΌΡƒ, Ρ‡Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

ΠΈ поэтому ΠΏΠ°Ρ€Π° символов ‘ рассматриваСтся ΠΊΠ°ΠΊ escape-символ, ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ΅, ΠΈ поэтому Π² Π±ΡƒΠΊΠ²Π°Π»ΡŒΠ½ΠΎΠΌ Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠΈ отсутствуСт другая одинарная ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠ°.

ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚. Но Ссли ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ этот символ Π²Π½ΡƒΡ‚Ρ€ΠΈ строки:

ΠΌΡ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΡˆΠΈΠ±ΠΊΡƒ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ компиляции:

ΠΏΠΎΡΠΊΠΎΠ»ΡŒΠΊΡƒ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ ΠΊΠΎΠ΄ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ:

Π’Π°ΠΉΠ½Π° ошибки коммСнтария

Π•Ρ‰Π΅ Π±ΠΎΠ»Π΅Π΅ странная ситуация Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ использовании однострочных ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠ΅Π² для Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΎΠ² Unicode, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ ΠΈΠ»ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки. НапримСр, нСсмотря Π½Π° Ρ‚ΠΎ, Ρ‡Ρ‚ΠΎ ΠΎΠ±Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π° Π·Π°ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹, ΠΌΠΎΠ³ΡƒΡ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ошибки Π²ΠΎ врСмя компиляции!

Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ компилятор всСгда ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Ρ‹ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ символов ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° строки ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ нСсовмСстимы с однострочными коммСнтариями; ΠΎΠ½ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‚ символы Π²Π½Π΅ коммСнтария!

Π§Ρ‚ΠΎΠ±Ρ‹ Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡŽ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠ±ΠΎΠ·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ многострочного коммСнтария, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

Π’Ρ‹Π²ΠΎΠ΄Ρ‹

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ использованиС Ρ‚ΠΈΠΏΠ° char Π² Java скрываСт Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡƒΠ΄ΠΈΠ²ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ особыС случаи. Π’ частности, ΠΌΡ‹ ΡƒΠ²ΠΈΠ΄Π΅Π»ΠΈ, Ρ‡Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠΎΠ΄ Java, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Unicode. Π­Ρ‚ΠΎ связано с Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎ компилятор сначала ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ΅Ρ‚ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Unicode Π² символ, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΎΡ†Π΅Π½ΠΈΠ²Π°Π΅Ρ‚ синтаксис. Π­Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ программисты ΠΌΠΎΠ³ΡƒΡ‚ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ синтаксичСскиС ошибки Ρ‚Π°ΠΌ, Π³Π΄Π΅ ΠΎΠ½ΠΈ Π½ΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ, особСнно Π² коммСнтариях.

ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ Π°Π²Ρ‚ΠΎΡ€Π°: эта ΡΡ‚Π°Ρ‚ΡŒΡ прСдставляСт собой ΠΊΠΎΡ€ΠΎΡ‚ΠΊΠΈΠΉ ΠΎΡ‚Ρ€Ρ‹Π²ΠΎΠΊ ΠΈΠ· Ρ€Π°Π·Π΄Π΅Π»Π° 3.3.5 Β«ΠŸΡ€ΠΈΠΌΠΈΡ‚ΠΈΠ²Π½Ρ‹Π΅ ΡΠΈΠΌΠ²ΠΎΠ»ΡŒΠ½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…Β» Ρ‚ΠΎΠΌΠ° 1 ΠΌΠΎΠ΅ΠΉ ΠΊΠ½ΠΈΠ³ΠΈ Β«Java для ΠΏΡ€ΠΈΡˆΠ΅Π»ΡŒΡ†Π΅Π²Β». Для получСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ посСтитС сайт ΠΊΠ½ΠΈΠ³ΠΈ (Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°Π³Ρ€ΡƒΠ·ΠΈΡ‚ΡŒ Ρ€Π°Π·Π΄Π΅Π» 3.3.5 ΠΈΠ· области Β«ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹Β»).

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

РусскиС Π‘Π»ΠΎΠ³ΠΈ

Π˜Π½Ρ‚Π΅Ρ€Π΅ΡΠ½Π°Ρ история Β«Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈΒ» ΠΈ Ρ€Π°Π·Π½ΠΈΡ†Ρ‹ ΠΌΠ΅ΠΆΠ΄Ρƒ Β«Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ΠΎΠΌ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈΒ» ΠΈ Β«ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΎΠΌ строки»

ΠŸΡ€ΠΈ Π²Π²ΠΎΠ΄Π΅ тСкста Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши Enter ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Ρ‚ ΠΊ Π½Π°Ρ‡Π°Π»Ρƒ Π½ΠΎΠ²ΠΎΠΉ строки. Π­Ρ‚ΠΎ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎΠ΅ использованиС Π½Π΅ΠΈΠ·Π±Π΅ΠΆΠ½ΠΎ Π²Π²Π΅Π΄Π΅Ρ‚ Π² Π·Π°Π±Π»ΡƒΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΈΡ‡ΠΊΠΎΠ² Π² C / C ++: Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ (CR, Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ) ‘\ r’ ΠΈ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки (LF, ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки) ‘\ n’ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅, здСсь ΠΌΡ‹ ΠΏΠΎΠΊΠ° ΠΎΡ‚Π»ΠΎΠΆΠΈΠΌ этот вопрос Π² сторону, Π° ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Π½Π΅ΠΌ ΠΏΠΎΠ·ΠΆΠ΅. Π”Π°Π²Π°ΠΉΡ‚Π΅ сначала посмотрим Π½Π° интСрСсный историчСский источник Β«Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈΒ».

ΠŸΡ€ΠΎΠΈΡΡ…ΠΎΠΆΠ΄Π΅Π½ΠΈΠ΅ клавиши Π²Π²ΠΎΠ΄Π° восходит ΠΊ эпохС мСханичСских английских ΠΏΠΈΡˆΡƒΡ‰ΠΈΡ… машинок. На этой ΠΏΠΈΡˆΡƒΡ‰Π΅ΠΉ машинкС Π΅ΡΡ‚ΡŒ Ρ‡Π°ΡΡ‚ΡŒ, называСмая Β«Π°Π²Ρ‚ΠΎΠΌΠΎΠ±ΠΈΠ»ΡŒ пСрсонаТа», которая, вСроятно, являСтся Π½ΠΈΠΆΠ½Π΅ΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ, которая ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅Ρ‚ Π±Π΅Π³Π°Ρ‚ΡŒ.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

Π˜Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ ΠΆΠ΅ Π±ΡƒΠ΄Π΅Ρ‚ с Linux Ρ‚Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ? ΠŸΠΎΠΆΠ°Π»ΡƒΠΉΡΡ‚Π°, ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠ°ΠΉ ΡΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ.

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

Π§Π΅Ρ€Π΅Π· vim Π² Linux ΠΌΡ‹ Π²ΠΈΠ΄ΠΈΠΌ, Ρ‡Ρ‚ΠΎ ΠΌΠ΅ΠΆΠ΄Ρƒ a, ab ΠΈ abc Π΅ΡΡ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ Π±ΠΈΡ‚ символа, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ соотвСтствуСт 0a, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ являСтся ‘\ n’ Π² ΠΊΠΎΠ΄Π΅ ASCII, Ρ‡Ρ‚ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Linux ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄ΠΈΠ½ символ Π½ΠΎΠ²ΠΎΠΉ строки. ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ.

Π’ΠΎΠ³Π΄Π° Π΄Π°Π²Π°ΠΉΡ‚Π΅ вСрнСмся ΠΊ ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ ‘\ r’ ΠΈ ‘\ n’ Π² C / C ++. Π’ C / C ++ исходный ΡΡ‚ΠΈΠ»ΡŒ сохраняСт это ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ символа Π½ΠΎΠ²ΠΎΠΉ строки. Π‘ΠΈΠΌΠ²ΠΎΠ» Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ ‘\ r’ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² Π½Π°Ρ‡Π°Π»ΠΎ строки ΠΈ Π½Π΅ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ дСйствиС Π½ΠΎΠ²ΠΎΠΉ строки. Новая строка Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ символом ‘\ n ‘. Новички Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Ρ€Π°Π·Π»ΠΈΡ‡Π°Ρ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ этих Π΄Π²ΡƒΡ… символов.

Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π΄Π°Π²Π°ΠΉΡ‚Π΅ Π²ΠΎΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡΡ простым ΠΊΠΎΠ΄ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ эффСкт ‘\ r’ ‘\ n’ ‘\ b’.

(1) Код C:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

(2) Код C ++:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

(3) Анализ:

Π’ΠΎ-ΠΏΠ΅Ρ€Π²Ρ‹Ρ…, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° ΠΏΠ΅Ρ€Π²ΡƒΡŽ строку Π²Ρ‹Π²ΠΎΠ΄Π° «abc \ r \ ncba \ rrr \ bz \ n»:

Π—Π°Ρ‚Π΅ΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π±ΠΎΠ»Π΅Π΅ ΠΈΠ½Ρ‚ΡƒΠΈΡ‚ΠΈΠ²Π½ΠΎ Π΄ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ пСрСмСщаСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ курсор Π±Π΅Π· удалСния символов, Π΄Π°Π²Π°ΠΉΡ‚Π΅ посмотрим Π½Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ строку ΠΊΠΎΠ΄Π°. Β«abcd \ b \ bΒ», послС Π΄Π²ΡƒΡ… \ bs курсор пСрСмСщаСтся ΠΏΠΎΠ΄ c (ΠΈΠ»ΠΈ ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Π½Ρ‹ΠΉ курсор Π½Π° c, ΠΈΠ»ΠΈ I-ΠΎΠ±Ρ€Π°Π·Π½Ρ‹ΠΉ курсор ΠΏΠ΅Ρ€Π΅Π΄ c), Ρ‡Ρ‚ΠΎΠ±Ρ‹ курсор оставался для наблюдСния. ΠœΡ‹ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ getchar () ΠΈ cin.get ().

Π˜Ρ‚Π°ΠΊ, Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ послС запуска ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Π±ΡƒΠ΄Π΅Ρ‚:

Π’ Ρ‚ΠΎ ΠΆΠ΅ врСмя Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²ΠΈΠ΄Π΅Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ курсор остаСтся Π² ΡƒΠΊΠ°Π·Π°Π½Π½ΠΎΠΉ Π²Ρ‹ΡˆΠ΅ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ.ΠšΠΎΠ½Π΅Ρ‡Π½ΠΎ, Ссли Π²Ρ‹ Π²Π²Π΅Π΄Π΅Ρ‚Π΅ символ Π² это врСмя, c ΠΈΠ»ΠΈ Π΄Π°ΠΆΠ΅ d Π±ΡƒΠ΄ΡƒΡ‚ пСрСзаписаны с ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ курсора.

НаконСц, ΠΏΡ€ΠΈΠ»ΠΎΠΆΠΈΡ‚Π΅ для справки Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ с экранированными символами.

ПобСг пСрсонаТ

Π·Π½Π°Ρ‡ΠΈΠΌΠΎΡΡ‚ΡŒ

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ASCII (дСсятичноС)

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° ASCII (ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅)

Колокол (BEL)

0x07

Backspace (BS), ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ столбСц

0x08

ΠŸΠΎΠ΄Π°Ρ‡Π° страницы (FF), ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² Π½Π°Ρ‡Π°Π»ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ страницы

0x0C

ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки (LF), ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² Π½Π°Ρ‡Π°Π»ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ строки

0x0A

Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ (CR), ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π΅ΠΊΡƒΡ‰ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ Π² Π½Π°Ρ‡Π°Π»ΠΎ этой строки

0x0D

Π“ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Π°Ρ табуляция (HT) (ΠΏΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ TAB)

0x09

Π’Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Π°Ρ Ρ‚Π°Π±Π»ΠΈΡ†Π° (VT)

0x0B

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ символ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠΉ косой Ρ‡Π΅Ρ€Ρ‚Ρ‹ « \ »

0x5C

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ собой ΠΎΠ΄ΠΈΠ½Π°Ρ€Π½ΡƒΡŽ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΡƒ (апостроф).

0x27

ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ символ Π΄Π²ΠΎΠΉΠ½ΠΎΠΉ ΠΊΠ°Π²Ρ‹Ρ‡ΠΊΠΈ

0x22

\?ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ собой Π²ΠΎΠΏΡ€ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ Π·Π½Π°ΠΊ0630x3F

НулСвой символ (NULL)

0x00

Π›ΡŽΠ±ΠΎΠΉ символ, прСдставлСнный ΠΎΡ‚ 1 Π΄ΠΎ 3 Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… чисСл.

Π’Ρ€Π΅Ρ…Π·Π½Π°Ρ‡Π½ΠΎΠ΅ Π²ΠΎΡΡŒΠΌΠ΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅

Π›ΡŽΠ±ΠΎΠΉ символ, прСдставлСнный ΠΎΡ‚ 1 Π΄ΠΎ 2 ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½Ρ‹Ρ… чисСл

Π”Π²ΡƒΠ·Π½Π°Ρ‡Π½ΠΎΠ΅ ΡˆΠ΅ΡΡ‚Π½Π°Π΄Ρ†Π°Ρ‚Π΅Ρ€ΠΈΡ‡Π½ΠΎΠ΅

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΆΠ½ΠΎ всСгда ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ символ пСрСноса строки Π² ΠΊΠΎΠ½Ρ†Π΅ тСкстовых Ρ„Π°ΠΉΠ»ΠΎΠ²?

Иногда ΠΏΡ€ΠΈ просмотрС Π΄ΠΈΡ„Ρ„ΠΎΠ² ΠΊΠΎΠΌΠΌΠΈΡ‚ΠΎΠ² Ρ‡Π΅Ρ€Π΅Π· git log ΠΈΠ»ΠΈ git diff ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ Π²Ρ‹Π²ΠΎΠ΄:

Или Π½Π° GitHub Π² интСрфСйсС для просмотра Π΄ΠΈΡ„Ρ„ΠΎΠ²:

Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ Ρ„ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π‘ΠΌΠΎΡ‚Ρ€Π΅Ρ‚ΡŒ ΠΊΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΡƒ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. ΠšΠ°Ρ€Ρ‚ΠΈΠ½ΠΊΠ° ΠΏΡ€ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ. Π€ΠΎΡ‚ΠΎ Ρ‡Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ

ΠŸΠΎΡ‡Π΅ΠΌΡƒ это Ρ‚Π°ΠΊ Π²Π°ΠΆΠ½ΠΎ, Ρ‡Ρ‚ΠΎ Git ΠΈ GitHub ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π°ΡŽΡ‚ нас ΠΎΠ± этом? Π”Π°Π²Π°ΠΉΡ‚Π΅ разбСрСмся.

Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ символ пСрСноса строки?

Π§Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€ΠΎΡ‰Π΅, Ρ‡Π΅ΠΌ тСкстовый Ρ„Π°ΠΉΠ»? ΠŸΡ€ΠΎΡΡ‚ΠΎ тСкстовыС Π΄Π°Π½Π½Ρ‹Π΅ β€” ΠΊΠ°ΠΊ хранятся Π½Π° дискС, Ρ‚Π°ΠΊ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ. На самом Π΄Π΅Π»Π΅ ΠΏΡ€Π°Π²ΠΈΡ‚Π΅Π»ΡŒΡΡ‚Π²ΠΎ Π½Π°ΠΌ Π²Ρ€Ρ‘Ρ‚ всё Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ слоТнСС.

ΠžΡ„Ρ„Ρ‚ΠΎΠΏΠΈΠΊ ΠΏΡ€ΠΎ ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ символы ASCII

НС всС символы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ содСрТатся Π² тСкстовых Ρ„Π°ΠΉΠ»Π°Ρ…, ΠΈΠΌΠ΅ΡŽΡ‚ Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠ΅ прСдставлСниС. Π’Π°ΠΊΠΈΠ΅ символы Π΅Ρ‰Ρ‘ Π½Π°Π·Ρ‹Π²Π°ΡŽΡ‚ «ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠΌΠΈ», ΠΈ ΠΊ Π½ΠΈΠΌ относятся, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€:

МногиС эти символы ΠΏΡ€ΠΈΡˆΠ»ΠΈ ΠΊ Π½Π°ΠΌ ΠΈΠ· эпохи ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… машинок, поэтому Ρƒ Π½ΠΈΡ… Ρ‚Π°ΠΊΠΈΠ΅ странныС названия. И Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ, Π² контСкстС ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ машинки ΠΈΠ»ΠΈ ΠΏΡ€ΠΈΠ½Ρ‚Π΅Ρ€Π° Ρ‚Π°ΠΊΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠ°ΠΊ ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄ строки (ΡΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ лист Π±ΡƒΠΌΠ°Π³ΠΈ Π²Π²Π΅Ρ€Ρ… Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‰Π°Ρ Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΠΎΠΏΠ°Π»Π° Π½Π° ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΡƒΡŽ строку), Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΊΠ°Ρ€Π΅Ρ‚ΠΊΠΈ (ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ‡Π°Ρ‚Π°ΡŽΡ‰ΡƒΡŽ Π³ΠΎΠ»ΠΎΠ²ΠΊΡƒ Π² ΠΊΡ€Π°ΠΉΠ½Π΅Π΅ Π»Π΅Π²ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅) ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π½Π° ΠΎΠ΄ΠΈΠ½ символ Π½Π°Π·Π°Π΄, ΠΎΠ±Ρ€Π΅Ρ‚Π°ΡŽΡ‚ смысл. ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚Π° Π½Π° ΠΎΠ΄ΠΈΠ½ символ Π½Π°Π·Π°Π΄ создавались ΠΆΠΈΡ€Π½Ρ‹Π΅ символы (ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΡˆΡŒ символ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΡˆΡŒΡΡ Π½Π°Π·Π°Π΄ ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΡˆΡŒ Π΅Π³ΠΎ Π΅Ρ‰Ρ‘ Ρ€Π°Π·) ΠΈ Π±ΡƒΠΊΠ²Ρ‹ с диакритичСскими Π·Π½Π°ΠΊΠ°ΠΌΠΈ, Ρ‚Π°ΠΊΠΈΠ΅ ΠΊΠ°ΠΊ Γ  ΠΈΠ»ΠΈ Γ£ (ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΡˆΡŒ символ, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°Π΅ΡˆΡŒΡΡ Π½Π°Π·Π°Π΄ ΠΈ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΡˆΡŒ апостроф ΠΈΠ»ΠΈ Ρ‚ΠΈΠ»ΡŒΠ΄Ρƒ). Но Π·Π°Ρ‡Π΅ΠΌ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ машинкС Π±ΠΈΠ±ΠΈΠΊΠ°Π»ΠΊΠ°?

БСгодня ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· этих символов потСряли смысл, Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎ сих ΠΏΠΎΡ€ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ, ΡΡ…ΠΎΠΆΡƒΡŽ с исходной.

ВСкстовыС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ тСкстовыС Ρ„Π°ΠΉΠ»Ρ‹ Π² Π½Π΅ΠΊΠΎΠ΅ΠΌ Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΌ Π²ΠΈΠ΄Π΅, прСобразуя Π½Π΅ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅ΠΌΡ‹Π΅ символы, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, пСрСносы строк ΠΈ табуляции ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΡŽΡ‚ΡΡ Π² настоящиС ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ строки ΠΈΠ»ΠΈ Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ отступы.

Для Π½Π°Π±ΠΎΡ€Π° символа пСрСноса строки достаточно Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ «Enter», Π½ΠΎ Π½Π° Ρ€Π°Π·Π½Ρ‹Ρ… ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ… этот символ закодируСтся ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ:

Как Π²ΠΈΠ΄ΠΈΡ‚Π΅, Windows Ρ‚ΠΎΡ‡Π½Π΅Π΅ всСго эмулируСт ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ‡Π°Ρ‚Π½ΠΎΠΉ машинки.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ пСрСнос строки Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π° Π²Π°ΠΆΠ΅Π½?

Богласно ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ ΠΈΠ· стандарта POSIX, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ‚ΠΎΠΆΠ΅ ΠΏΡ€ΠΈΡˆΡ‘Π» ΠΊ Π½Π°ΠΌ ΠΈΠ· эпохи ΠΏΠ΅Ρ‡Π°Ρ‚Π½Ρ‹Ρ… машинок:

Π‘Ρ‚Ρ€ΠΎΠΊΠ° β€” это ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈΠ· нуля ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ символов, Π½Π΅ ΡΠ²Π»ΡΡŽΡ‰ΠΈΡ…ΡΡ символом Π½ΠΎΠ²ΠΎΠΉ строки, ΠΈ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΈΡ€ΡƒΡŽΡ‰Π΅Π³ΠΎ символа Π½ΠΎΠ²ΠΎΠΉ строки.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π²Π°ΠΆΠ΅Π½ этот стандарт? Π’ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½ ΠΌΠΈΠ»Π»ΠΈΠ°Ρ€Π΄ способов Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅, ΠΈ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ благодаря стандартам, Ρ‚Π°ΠΊΠΈΠΌ ΠΊΠ°ΠΊ POSIX, ΠΌΡ‹ ΠΈΠΌΠ΅Π΅ΠΌ сСйчас ΠΎΠ³Ρ€ΠΎΠΌΠ½ΠΎΠ΅ количСство качСствСнного ПО, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ с Π΄Ρ€ΡƒΠ³ΠΎΠΌ.

Π’.Π΅. Ссли Π²Ρ‹ Π½Π΅ ставитС символ пСрСноса строки Π² ΠΊΠΎΠ½Ρ†Π΅ строки, Ρ‚ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎ ΠΏΠΎ стандарту такая строка Π½Π΅ являСтся Π²Π°Π»ΠΈΠ΄Π½ΠΎΠΉ. ΠœΠ½ΠΎΠΆΠ΅ΡΡ‚Π²ΠΎ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ ΠΈΠ· Unix, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΌΠΈ я ΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡΡŒ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь, написано Π² согласии с этим стандартом, ΠΈ ΠΎΠ½ΠΈ просто Π½Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ Ρ‚Π°ΠΊΠΈΠ΅ «ΡΠ»ΠΎΠΌΠ°Π½Π½Ρ‹Π΅» строки.

Π”Π°Π²Π°ΠΉΡ‚Π΅, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Π΅Ρ€Π΅Π· Python создадим Ρ‚Π°ΠΊΠΎΠΉ Ρ„Π°ΠΉΠ» со сломанными строками:

Упс! wc нашла Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 2 строки!

Π”Π°Π²Π°ΠΉΡ‚Π΅ создадим Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ Ρ„Π°ΠΉΠ»:

И ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠ΅ΠΌ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΡΠΊΠ»Π΅ΠΈΡ‚ΡŒ Π΄Π²Π° созданных Ρ„Π°ΠΉΠ»Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρ‹ cat :

НазваниС cat β€” это сокращСниС ΠΎΡ‚ «ΠΊΠΎΠ½ΠΊΠ°Ρ‚Снация», ΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ связано с ΠΊΠΎΡ‚ΠΈΠΊΠ°ΠΌΠΈ. А Таль.

И ΠΎΠΏΡΡ‚ΡŒ ΠΊΠ°ΠΊΠΎΠΉ-Ρ‚ΠΎ странный Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚! Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв это Π½Π΅ Ρ‚ΠΎ, Ρ‡Π΅Π³ΠΎ Π²Ρ‹ Π±Ρ‹ ΠΎΠΆΠΈΠ΄Π°Π»ΠΈ, Π½ΠΎ Π²ΠΏΠΎΠ»Π½Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ ситуации, ΠΊΠΎΠ³Π΄Π° Π²Π°ΠΌ Π½ΡƒΠΆΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ Ρ‚Π°ΠΊΠΎΠΉ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚. ИмСнно поэтому ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° cat Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ°ΠΌΠΎΡΡ‚ΠΎΡΡ‚Π΅Π»ΡŒΠ½ΠΎ Π²ΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ символы пСрСноса строки, ΠΈΠ½Π°Ρ‡Π΅ это сдСлало Π±Ρ‹ Π΅Ρ‘ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ нСконсистСнтным.

Π•Ρ‰Ρ‘ Π΄ΠΎΠ²ΠΎΠ΄Ρ‹:

НастраиваСм Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€

Π‘Π°ΠΌΡ‹ΠΉ простой способ ΠΏΠ΅Ρ€Π΅ΡΡ‚Π°Ρ‚ΡŒ Π΄ΡƒΠΌΠ°Ρ‚ΡŒ ΠΎ пустых строках ΠΈ Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΆΠΈΡ‚ΡŒ β€” это Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ свой тСкстовый Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΈΠ»ΠΈ IDE Π½Π° автоматичСскоС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ символа пСрСноса строки Π² ΠΊΠΎΠ½Π΅Ρ† Ρ„Π°ΠΉΠ»ΠΎΠ²:

Для Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ΠΎΠ² смотритС настройку здСсь.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, такая малСнькая Π΄Π΅Ρ‚Π°Π»ΡŒ, ΠΊΠ°ΠΊ пСрСнос строки Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π° ΠΈ Π½Π΅ каТСтся ΠΎΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎΠΉ, Π° Ρ‚Π΅ΠΌΠ° Π²ΠΎΠΎΠ±Ρ‰Π΅ каТСтся спорной, Π½ΠΎ боюсь, Ρ‡Ρ‚ΠΎ Ρƒ нас Π½Π΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ Π²Ρ‹Π±ΠΎΡ€Π°, ΠΊΡ€ΠΎΠΌΠ΅ ΠΊΠ°ΠΊ ΠΏΡ€ΠΈΠ½ΡΡ‚ΡŒ это ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ Π·Π° Π΄Π°Π½Π½ΠΎΡΡ‚ΡŒ ΠΈ просто Π²Ρ‹Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡ΠΊΡƒ (ΠΈΠ»ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ инструмСнтарий) всСгда ΡΡ‚Π°Π²ΠΈΡ‚ΡŒ символ Π½ΠΎΠ²ΠΎΠΉ строки Π² Π»ΡŽΠ±Ρ‹Ρ… тСкстовых Ρ„Π°ΠΉΠ»Π°Ρ…, Π΄Π°ΠΆΠ΅ Ссли этого Π½Π΅ трСбуСтся явно. Π­Ρ‚ΠΎ считаСтся распространённой Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΎΠΉ, ΠΈ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡƒΠΌ ΡƒΠ±Π΅Ρ€Π΅ΠΆΡ‘Ρ‚ вас ΠΈ Π²Π°ΡˆΠΈΡ… ΠΊΠΎΠ»Π»Π΅Π³ ΠΎΡ‚ всяких Π½Π΅ΠΎΠΆΠΈΠ΄Π°Π½Π½Ρ‹Ρ… эффСктов ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π°ΠΌΠΈ Unix.

Π’ тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ это выглядит ΠΊΠ°ΠΊ лишняя пустая строка Π² ΠΊΠΎΠ½Ρ†Π΅ Ρ„Π°ΠΉΠ»Π°:

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ

Π’Π°Ρˆ адрСс email Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½. ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ *