Apa arti dari karakter kontrol berikut:
Kereta kembali
Umpan baris
Umpan bentuk
Apa arti dari karakter kontrol berikut:
Kereta kembali
Umpan baris
Umpan bentuk
Jawaban:
Pengembalian kereta berarti kembali ke awal baris saat ini tanpa bergerak ke bawah. Nama tersebut berasal dari kereta printer, karena monitor jarang ketika nama itu diciptakan. Ini umumnya lolos sebagai \r
, disingkat CR , dan memiliki nilai ASCII 13
atau 0x0D
.
Linefeed berarti naik ke bawah ke baris berikutnya; Namun, itu telah diubah dan diganti namanya. Digunakan sebagai "baris baru", itu mengakhiri garis (biasanya bingung dengan garis memisahkan ). Ini umumnya lolos sebagai \n
, disingkat LF atau NL, dan memiliki nilai ASCII 10
atau 0x0A
. CRLF (tetapi tidak CRNL) digunakan untuk pasangan \r\n
.
Umpan formulir berarti naik ke bawah ke "halaman" berikutnya. Itu biasa digunakan sebagai pemisah halaman, tetapi sekarang juga digunakan sebagai pemisah bagian. (Ini tidak biasa digunakan dalam kode sumber untuk membagi fungsi atau kelompok fungsi yang independen secara logis.) Editor teks dapat menggunakan karakter ini ketika Anda "menyisipkan page break". Ini biasanya lolos sebagai \f
, disingkat FF , dan memiliki nilai ASCII 12
atau 0x0C
.
Sebagai karakter kontrol, mereka dapat diinterpretasikan dengan berbagai cara.
Perbedaan yang paling umum (dan mungkin satu-satunya yang perlu dikhawatirkan) adalah garis akhir dengan CRLF pada Windows, NL pada Unix-like, dan CR pada Mac yang lebih lama (situasinya telah berubah dengan OS X menjadi seperti Unix). Perhatikan pergeseran makna dari LF ke NL, untuk karakter yang sama persis, memberikan perbedaan antara Windows dan Unix. (Windows, tentu saja, lebih baru dari Unix, jadi tidak mengadopsi pergeseran semantik ini. Saya tidak tahu sejarah Mac menggunakan CR.) Banyak editor teks dapat membaca file dalam salah satu dari ketiga format ini dan mengkonversi di antara mereka , tetapi tidak semua utilitas dapat.
Umpan formulir sedikit lebih menarik (meskipun kurang umum digunakan secara langsung), dan dengan definisi pemisah halaman yang biasa, ia hanya dapat muncul di antara baris (misalnya setelah urutan baris baru NL, CRLF, atau CR) atau di awal atau akhir file.
\x0c
?
\r
carriage return dan menggerakkan kursor kembali seperti jika saya akan melakukan-
printf("stackoverflow\rnine")
ninekoverflow
berarti telah menggeser kursor ke awal "stackoverflow" dan menimpa awal empat karakter sejak "sembilan" panjangnya empat karakter.
\n
adalah karakter baris baru yang mengubah baris dan membawa kursor ke awal baris baru seperti-
printf("stackoverflow\nnine")
stackoverflow
nine
\f
is feed form, penggunaannya telah menjadi usang tetapi digunakan untuk memberikan lekukan seperti
printf("stackoverflow\fnine")
stackoverflow
nine
jika saya akan menulis seperti-
printf("stackoverflow\fnine\fgreat")
stackoverflow
nine
great
printf
utilitas dari coreutils. Atau bahkan menggunakan echo -en
yang merupakan bash builtin.
\f
sebenarnya \v
- tab vertikal, yang diberikan keduanya terlihat sama di konsol.
printf("123\f456\f789");
menunjukkan /> <bold> 123456789 </bold> di konsol.
Lihatlah Wikipedia :
Sistem berdasarkan ASCII atau rangkaian karakter yang kompatibel menggunakan LF (Umpan baris, '\ n', 0x0A, 10 dalam desimal) atau CR (Pengembalian kereta, '\ r', 0x0D, 13 dalam desimal) secara individu, atau CR diikuti oleh LF (CR + LF, 0x0D 0x0A). Karakter-karakter ini didasarkan pada perintah printer: Umpan garis menunjukkan bahwa satu baris kertas harus diumpan keluar dari printer, dan carriage return menunjukkan bahwa carriage printer harus kembali ke awal baris saat ini.
\f
digunakan untuk page break. Anda tidak dapat melihat efek apa pun di konsol. Tetapi ketika Anda menggunakan karakter ini konstan dalam file Anda maka Anda dapat melihat perbedaannya.
Contoh lain adalah jika Anda dapat mengarahkan output ke file, maka Anda tidak perlu menulis file atau menggunakan penanganan file.
Misalnya:
Tulis kode ini di c ++
void main()
{
clrscr();
cout<<"helloooooo" ;
cout<<"\f";
cout<<"hiiiii" ;
}
dan ketika Anda mengkompilasi ini menghasilkan exe (untuk ex. abc.exe
)
maka Anda dapat mengarahkan output Anda ke file menggunakan ini:
abc > xyz.doc
kemudian buka file xyz.doc
Anda dapat melihat halaman yang sebenarnya istirahat antara hellooo dan hiiii ....
Terlepas dari informasi di atas, masih ada sejarah yang menarik dari LF (\ n) dan CR (\ r). [Penulis asli: 阮一峰 Sumber: http://www.ruanyifeng.com/blog/2006/04/post_213.html] Sebelum komputer keluar, ada jenis teleprinter bernama Teletype Model 33. Masing-masing dapat mencetak 10 karakter kedua. Tetapi ada satu masalah dengan ini, setelah selesai mencetak setiap baris, akan butuh 0,2 detik untuk pindah ke baris berikutnya, yaitu saat mencetak 2 karakter. Jika karakter baru ditransfer selama 0,2 detik ini, maka karakter baru ini akan hilang.
Jadi para ilmuwan menemukan cara untuk mengatasi masalah ini, mereka menambahkan dua karakter akhir setelah setiap baris, satu adalah 'Carriage return', yang memberitahu printer untuk membawa print head ke kiri .; yang lainnya adalah 'Line feed', ini memberitahu printer untuk memindahkan kertas ke atas 1 baris.
Kemudian, komputer menjadi populer, kedua konsep ini digunakan pada komputer. Pada saat itu, perangkat penyimpanan itu sangat mahal, sehingga beberapa ilmuwan mengatakan bahwa menambahkan dua karakter pada akhir setiap baris itu mahal, satu sudah cukup, jadi ada beberapa argumen tentang yang mana yang akan digunakan.
Di UNIX / Mac dan Linux, '\ n' diletakkan di akhir setiap baris, di Windows, '\ r \ n' diletakkan di akhir setiap baris. Konsekuensi dari penggunaan ini adalah bahwa file dalam UNIX / Mac akan ditampilkan dalam satu baris jika dibuka di Windows. Sementara file di Windows akan memiliki satu ^ M di akhir setiap baris jika dibuka di UNIX atau Mac.
WRITE.EXE
(alias Wordpad) dapat menampilkannya dengan baik.
Pada terminal kertas-printer tua, naik ke baris berikutnya melibatkan dua tindakan: memindahkan print head kembali ke awal rentang pemindaian horizontal (carriage return) dan memajukan gulungan kertas yang sedang dicetak (feed line).
Karena kita tidak lagi menggunakan terminal kertas-printer, tindakan itu tidak benar-benar relevan lagi, tetapi karakter yang digunakan untuk memberi sinyal mereka telah terjebak di berbagai inkarnasi.
Pertimbangkan printer dampak IBM 1403. CR memindahkan print head ke awal baris, tetapi TIDAK memajukan kertas. Ini memungkinkan untuk "mencetak berlebih", menempatkan banyak garis output pada satu baris. Hal-hal seperti menggarisbawahi dicapai dengan cara ini, seperti halnya cetak BOLD. LF maju kertas satu baris. Jika tidak ada CR, baris berikutnya akan mencetak sebagai langkah terhuyung karena LF tidak menggerakkan print head. FF memajukan kertas ke halaman berikutnya. Biasanya juga memindahkan print head ke awal baris pertama pada halaman baru, tetapi Anda mungkin perlu CR untuk itu. Yang pasti, sebagian besar programmer mengkodekan CRFF dan bukan CRLF pada akhir baris terakhir pada halaman karena CR tambahan yang dibuat oleh FF tidak masalah.
Pendeknya :
Carriage_return ( \r
atau 0xD
): Untuk mengambil kendali di mulai dari baris yang sama .
Line_Feed ( \n
atau 0xA
): Untuk Kendalikan di mulai dari baris berikutnya .
form_feed ( \f
atau 0xC
): Untuk mengambil kendali di mulai dari halaman berikutnya .
Sebagai suplemen,
1, Pengembalian kereta : Ini adalah terminologi printer yang berarti mengubah lokasi cetak ke awal baris saat ini . Dalam dunia komputer, itu berarti kembali ke awal baris saat ini dalam banyak kasus tetapi jarang berdiri untuk baris baru.
2, Line feed : Ini adalah terminologi printer yang berarti memajukan kertas satu baris. Jadi Carriage return dan Line feed digunakan bersama untuk mulai mencetak di awal baris baru. Dalam dunia komputer, umumnya memiliki arti yang sama dengan baris baru.
3, Form feed : Ini terminologi printer, saya suka penjelasan di utas ini .
Jika Anda memprogram untuk printer gaya 1980-an, itu akan mengeluarkan kertas dan memulai halaman baru. Anda hampir pasti tidak pernah membutuhkannya.
Sudah hampir usang dan Anda dapat merujuk ke Escape sequence \ f - form feed - apa sebenarnya itu? untuk penjelasan terperinci.
Catatan, kita dapat menggunakan CR atau LF atau CRLF untuk berdiri di baris baru di beberapa platform, tetapi baris baru tidak dapat berdiri di platform lain. Lihat wiki Newline untuk detailnya.
LF: Sistem Multics, Unix dan Unix-like (Linux, OS X, FreeBSD, AIX, Xenix, dll.), BeOS, Amiga, RISC OS, dan lainnya
CR: Mesin Commodore 8-bit, Acorn BBC, ZX Spectrum, TRS-80, keluarga Apple II, Oberon, Mac OS klasik hingga versi 9, MIT Lisp Machine dan OS-9
RS: implementasi QNX pra-POSIX
0x9B: Mesin Atari 8-bit menggunakan varian ATASCII ASCII (155 dalam desimal)
CR + LF: Microsoft Windows, DOS (MS-DOS, PC DOS, dll.), DEC TOPS-10, RT-11, CP / M, MP / M, Atari TOS, OS / 2, OS Symbian, Palm OS, Amstrad BPK, dan sebagian besar OS awal non-Unix dan non-IBM
LF + CR: Acorn BBC dan RISC OS output teks spooled.
Carriage return dan line feed juga merujuk pada mesin tik, yaitu dengan sedikit dorongan pada pegangan di sisi kiri media (tempat kertas bergerak), kertas akan memutar sedikit di sekitar silinder, memajukan mendokumentasikan satu baris. Jika Anda selesai mengetik satu baris, dan ingin melanjutkan ke yang berikutnya, Anda mendorong lebih keras, baik memajukan garis dan menggeser kereta sampai ke kanan, kemudian melanjutkan mengetik dari kiri ke kanan lagi saat kereta berjalan dengan masing-masing keystroke . Tidak perlu dikatakan, bungkus kata adalah pengaturan default untuk semua pemrosesan kata di era ini. P: D
Itu adalah karakter non-cetak, berkaitan dengan konsep "baris baru". \ n adalah linefeed. adalah carriage return. Pada platform yang berbeda, mereka memiliki arti yang berbeda, relatif terhadap baris baru yang valid. Di windows, baris baru adalah \ r \ n. Di linux, \ n. Di mac, \ r.
Dalam praktiknya, Anda meletakkannya di string apa pun, dan itu akan berpengaruh pada hasil cetak string.