कैरिज रिटर्न, लाइनफीड और फॉर्म फीड क्या हैं?


500

निम्नलिखित नियंत्रण वर्णों का अर्थ क्या है:

  1. कैरिज रिटर्न

  2. रेखा भरण

  3. भोजन की शैली


14
"गाड़ी वापसी" का क्या अर्थ है? मुझे अपने लैपटॉप पर कोई "गाड़ी" "वापस" नहीं दिखाई दे रही है। : एस
जीन होमिनल

12
@ जीनोमिनल गाड़ी मूल रूप से कर्सर (या प्राचीन टाइपराइटर में सूचक) का मतलब है, और वापसी का मतलब उस लाइन की शुरुआत में वापस आना है।
SOFe

मुझे अपने "टर्मिनल" "विंडो" में किसी भी तार को समाप्त नहीं किया गया है (या उस मामले के लिए कोई भी ग्लास पैन), और न ही "देव / tty1" से जुड़ा "टेलेटाइप" है। वे सभी रूपक बन गए हैं।
पिस्कोर ने

जवाबों:


621

कैरेज रिटर्न का मतलब है, नीचे की ओर बढ़े बिना वर्तमान लाइन की शुरुआत में लौटना। नाम प्रिंटर की गाड़ी से आता है, क्योंकि मॉनिटर तब दुर्लभ थे जब नाम रखा गया था। यह सामान्यतः \rसंक्षिप्त रूप में बच जाता है , संक्षिप्त रूप में CR , और ASCII मान है 13या 0x0D

लाइनफीड का अर्थ है अगली पंक्ति में नीचे की ओर बढ़ना; हालाँकि, इसका नाम बदलकर नाम बदल दिया गया है। "न्यूलाइन" के रूप में प्रयुक्त, यह लाइनों को समाप्त करता है (आमतौर पर अलग लाइनों के साथ भ्रमित )। यह सामान्यतः \nसंक्षिप्त रूप में बच जाता है , संक्षिप्त रूप से LF या NL, और ASCII मान 10या होता है 0x0ACRLF (लेकिन CRNL नहीं) जोड़ी के लिए उपयोग किया जाता है \r\n

फ़ॉर्म फ़ीड का अर्थ है अगले "पृष्ठ" पर नीचे जाना। यह आमतौर पर पेज सेपरेटर के रूप में उपयोग किया जाता था, लेकिन अब इसे सेक्शन सेपरेटर के रूप में भी उपयोग किया जाता है। (यह तार्किक रूप से स्वतंत्र कार्यों या कार्यों के समूहों को विभाजित करने के लिए स्रोत कोड में असामान्य रूप से उपयोग किया जाता है।) जब आप "पृष्ठ विराम सम्मिलित करते हैं" तो पाठ संपादक इस चरित्र का उपयोग कर सकते हैं। यह आमतौर पर के रूप में बच जाता है \f, संक्षिप्त एफएफ , और ASCII मूल्य 12या है 0x0C


नियंत्रण पात्रों के रूप में, उनकी व्याख्या विभिन्न तरीकों से की जा सकती है।

सबसे आम अंतर (और शायद केवल एक ही चिंता का विषय है) विंडोज पर CRLF, यूनिक्स पर एनएल-लाइक और पुराने मैक पर सीआर (ओएस एक्स के साथ स्थिति यूनिक्स की तरह बदल गई है) के साथ लाइनें समाप्त होती हैं। एलएफ से एनएल के अर्थ में बदलाव पर ध्यान दें, ठीक उसी चरित्र के लिए, विंडोज और यूनिक्स के बीच अंतर देता है। (विंडोज, ज़ाहिर है, यूनिक्स की तुलना में नया है, इसलिए उसने इस शब्दार्थिक बदलाव को नहीं अपनाया। मुझे सीआर का उपयोग करने वाले मैक का इतिहास नहीं पता है।) कई पाठ संपादक इन तीन प्रारूपों में से किसी में भी फाइल पढ़ सकते हैं और उनके बीच परिवर्तित कर सकते हैं। , लेकिन नहीं सभी उपयोगिताओं कर सकते हैं।

फॉर्म फ़ीड थोड़ा अधिक दिलचस्प है (भले ही कम आमतौर पर सीधे इस्तेमाल किया जाता है), और पृष्ठ विभाजक की सामान्य परिभाषा के साथ, यह केवल लाइनों के बीच आ सकता है (उदाहरण के लिए एनएल, सीआरएलएफ, या सीआर के न्यूलाइन अनुक्रम के बाद) या शुरुआत में या फ़ाइल का अंत।


10
मैं पुष्टि कर सकता है कि ओएस एक्स के लिए एक लाइन टर्मिनेटर के रूप में NL का उपयोग करता है, बस यूनिक्स की तरह (क्योंकि ओएस एक्स है एक यूनिक्स)। CR का उपयोग Mac OS 9 और नीचे में किया गया था ।
रोरी ओ'केन

1
FF char आज ("CTRL-G" घंटी चार के साथ) अजीब लग सकता है, लेकिन इसकी अधिक प्रासंगिकता तब थी जब वीडियो डिस्प्ले बहुत कम आम थे और हार्ड कॉपी टर्मिनलों का उपयोग डेटा डिस्प्ले के रूप में किया जाता था।
रिक सर्वस्व

क्या वह फ़ीड नियंत्रण नहीं है \x0c?
तजोर्रीमोर्री

2
"मुझे सीआर का उपयोग करके मैक का इतिहास नहीं पता है।" वह शायद एप्पल II से सीआर का उपयोग करके आया था। CR अन्य 8-बिट सिस्टम पर भी आम था, कमोडोर और टैंडी की तरह। ASCII इन प्रणालियों पर सार्वभौमिक नहीं था: कमोडोर ने PETSCII का उपयोग किया, जिसमें 0x8d () पर LF था। अटारी में कोई एलएफ चरित्र नहीं था। जो भी कारण के लिए, सीआर = 0x0d अधिक-या-कम मानक था।
Ssswift

125

\r गाड़ी वापसी है और कर्सर को वापस ले जाता है जैसे कि मैं करूँगा-

printf("stackoverflow\rnine")
ninekoverflow

इसका अर्थ है कि यह कर्सर को "स्टैकओवरफ़्लो" की शुरुआत में स्थानांतरित कर दिया है और "नौ" चार वर्णों के लंबे होने से शुरुआती चार वर्णों को अधिलेखित कर देता है।

\n नई लाइन वर्ण है जो लाइन को बदलता है और कर्सर को नई लाइन की शुरुआत में ले जाता है जैसे-

printf("stackoverflow\nnine")
stackoverflow
nine

\f फॉर्म फीड है, इसका उपयोग अप्रचलित हो गया है लेकिन इसका उपयोग इंडेंटेशन देने के लिए किया जाता है

printf("stackoverflow\fnine")
stackoverflow
             nine

अगर मैं लिखूंगा जैसे-

printf("stackoverflow\fnine\fgreat")
stackoverflow
             nine
                 great

3
लेकिन यह उदाहरण उच्च स्तरीय भाषाओं में काम नहीं करता है!
सीना करवंडी 20

@ @I ᔕ Kᗩᖇ ᐯᗩᑎᗪ I यह करता है: आप कम से कम लिनक्स शेल में कोर्यूटिल्स की printfउपयोगिता का उपयोग कर सकते हैं । या यहां तक ​​कि उपयोग echo -enजो एक बैश बिलिन है।
रुस्लान

एक फाइल में एक ही लाइन के रूप में सभी लाइनों को कैसे पास करें?
पारस सिंह

8
फॉर्म फीड का उपयोग इंडेंटेशन के लिए नहीं किया जाता है। यदि आप उनमें से कुछ को एक प्रिंटर के लिए भेजते हैं तो यह पेपर को थूक देगा। जैसा \fकि आपने वास्तव में वर्णित किया है \v- एक ऊर्ध्वाधर टैब, बशर्ते दोनों कंसोल में समान दिखें।
cprn

printf("123\f456\f789");कंसोल पर शो /> <बोल्ड> 123456789 </ बोल्ड>।
मयूर

31

विकिपीडिया पर एक नज़र डालें :

ASCII या संगत वर्ण सेट पर आधारित सिस्टम LF (लाइन फीड, '\ n', 0x0A, 10 दशमलव में) या CR (कैरिज रिटर्न, '\ r', 0x0D, 13 दशमलव में 13) व्यक्तिगत रूप से उपयोग करते हैं, या CR इसके बाद आते हैं। LF (CR + LF, 0x0D 0x0A)। ये वर्ण प्रिंटर कमांड पर आधारित होते हैं: लाइन फीड ने संकेत दिया था कि कागज की एक लाइन प्रिंटर से बाहर फीड होनी चाहिए, और एक गाड़ी वापसी ने संकेत दिया कि प्रिंटर गाड़ी चालू लाइन की शुरुआत में वापस आनी चाहिए।


25

\fपृष्ठ विराम के लिए उपयोग किया जाता है। आप कंसोल में कोई प्रभाव नहीं देख सकते हैं। लेकिन जब आप अपनी फ़ाइल में इस वर्ण का उपयोग करते हैं तो आप अंतर देख सकते हैं।

अन्य उदाहरण यह है कि यदि आप किसी फ़ाइल पर अपने आउटपुट को रीडायरेक्ट कर सकते हैं तो आपको फ़ाइल लिखने या फ़ाइल हैंडलिंग का उपयोग करने की आवश्यकता नहीं है।

पूर्व के लिए:

इस कोड को c ++ में लिखें

void main()    
{
    clrscr();
    cout<<"helloooooo" ;

    cout<<"\f";
    cout<<"hiiiii" ;

}

और जब आप इसे संकलित करते हैं तो यह एक exe (पूर्व के लिए abc.exe) उत्पन्न करता है।

तब आप इसका उपयोग करके अपने आउटपुट को फ़ाइल में पुनर्निर्देशित कर सकते हैं:

abc > xyz.doc

फिर फ़ाइल खोलें जिसे xyz.docआप वास्तविक पेज को हेलो और hiiii के बीच तोड़ कर देख सकते हैं ...।


21

उपरोक्त जानकारी के अलावा, LF (\ n) और CR (\ r) का एक दिलचस्प इतिहास अभी भी है। [मूल लेखक:: स्रोत: http://www.ruanyifeng.com/blog/2006/04/post_213.html] कंप्यूटर के बाहर आने से पहले, टेलीप्रिंटर का एक प्रकार था जिसे टेलेटाइप मॉडल 33 कहा जाता था। यह 10 वर्णों को मुद्रित कर सकता है। दूसरा। लेकिन इसके साथ एक समस्या है, प्रत्येक पंक्ति को प्रिंट करने के बाद, अगली पंक्ति में स्थानांतरित होने में 0.2 सेकंड का समय लगेगा, जो कि 2 वर्णों को मुद्रित करने का समय है। यदि इस 0.2 सेकंड के दौरान एक नया वर्ण स्थानांतरित किया जाता है, तो यह नया वर्ण खो जाएगा।

इसलिए वैज्ञानिकों ने इस समस्या को हल करने का एक तरीका पाया, वे प्रत्येक पंक्ति के बाद दो समाप्ति वर्ण जोड़ते हैं, एक है 'कैरिज रिटर्न', जो प्रिंटर को बाईं ओर प्रिंट सिर लाने के लिए कहना है ;; अन्य एक 'लाइन फीड' है, यह प्रिंटर को कागज को 1 लाइन ऊपर ले जाने के लिए कहता है।

बाद में, कंप्यूटर लोकप्रिय हो गया, इन दो अवधारणाओं का उपयोग कंप्यूटर पर किया जाता है। उस समय, भंडारण उपकरण बहुत महंगा था, इसलिए कुछ वैज्ञानिकों ने कहा कि प्रत्येक पंक्ति के अंत में दो पात्रों को जोड़ना महंगा था, एक पर्याप्त है, इसलिए कुछ तर्क हैं जिनके बारे में एक का उपयोग करना है।

UNIX / Mac और Linux में, प्रत्येक पंक्ति के अंत में '\ n' डाला जाता है, Windows में, प्रत्येक पंक्ति के अंत में '\ r \ n' डाला जाता है। इस उपयोग का परिणाम यह है कि UNIX / Mac की फाइलें विंडोज में खोली जाने पर एक लाइन में प्रदर्शित होंगी। जबकि यूनिक्स या मैक में खोले जाने पर प्रत्येक पंक्ति के अंत में विंडोज में फ़ाइल में एक ^ M होगा।


1
OSX (BSD यूनिक्स पर आधारित) की रिलीज़ के साथ, मैक ने '\ n' - यूनिक्स लाइन एंडिंग पर स्विच किया।
जोनाथन क्रॉस

"विंडोज में खोले जाने पर UNIX / Mac की फाइलें एक लाइन में प्रदर्शित होंगी।" WRITE.EXE(उर्फ वर्डपैड) उन्हें ठीक प्रदर्शित कर सकते हैं।
एस्केपी

18

पुराने पेपर-प्रिंटर टर्मिनलों पर, अगली पंक्ति में आगे बढ़ते हुए दो क्रियाएं शामिल थीं: प्रिंट हेड को क्षैतिज स्कैन रेंज (कैरिज रिटर्न) की शुरुआत में ले जाना और पेपर के रोल को आगे बढ़ने (लाइन फीड) पर प्रिंट करना।

चूंकि अब हम पेपर-प्रिंटर टर्मिनलों का उपयोग नहीं करते हैं, इसलिए वे क्रियाएं वास्तव में प्रासंगिक नहीं हैं, लेकिन उन्हें संकेत देने के लिए उपयोग किए जाने वाले वर्ण विभिन्न अवतारों में फंस गए हैं।


दरअसल कैरिज रिटर्न ’प्रिंट हेड को बाईं ओर नहीं ले जाता है, बल्कि उस गाड़ी को आगे बढ़ाता है जो प्लेटन को दाईं ओर रखती है। एक लंबा लीवर हुआ करता था जो ऐसा करने के लिए बाएं हाथ से सक्रिय होता था। En.wikipedia.org/wiki/Typewriter
Mark Lakata

2
@MarkLakata टाइपराइटर के लिए सही है, लेकिन यह उत्तर पुराने प्रिंटिंग टर्मिनलों के बारे में है। उदाहरण के लिए, DEC LA36 ( columbia.edu/cu/computinghistory/la36.html )।
पीटर कार्डोना

12

आईबीएम 1403 प्रभाव प्रिंटर पर विचार करें। सीआर ने प्रिंट हेड को लाइन की शुरुआत में स्थानांतरित किया, लेकिन कागज को आगे नहीं बढ़ाया। यह "ओवरप्रिन्टिंग" के लिए अनुमति देता है, एक पंक्ति में आउटपुट की कई पंक्तियाँ रखता है। अंडरलाइनिंग जैसी चीजों को इस तरह से हासिल किया गया था, जैसा कि बोल्ड प्रिंट था। एलएफ ने कागज को एक पंक्ति में उन्नत किया। यदि कोई CR नहीं था, तो अगली पंक्ति एक कंपित-चरण के रूप में प्रिंट होगी क्योंकि LF ने प्रिंट हेड को स्थानांतरित नहीं किया था। FF ने कागज को अगले पृष्ठ पर आगे बढ़ाया। यह आम तौर पर नए पृष्ठ पर पहली पंक्ति की शुरुआत के लिए प्रिंट सिर को भी स्थानांतरित करता है, लेकिन इसके लिए आपको सीआर की आवश्यकता हो सकती है। यह सुनिश्चित करने के लिए, अधिकांश प्रोग्रामर एक पृष्ठ पर अंतिम पंक्ति के अंत में CRLF के बजाय CRFF को कोडित करते हैं क्योंकि FF द्वारा बनाया गया एक अतिरिक्त CR मायने नहीं रखता।


यह एकमात्र उत्तर है जो गाड़ी वापसी का पूरा अर्थ बताता है।
ली

12

संक्षेप में :

Carriage_return ( \rया 0xD): पर नियंत्रण लेने के लिए शुरू करने की एक ही पंक्ति

Line_Feed ( \nया 0xA): अगली पंक्ति की शुरुआत में नियंत्रण रखना

form_feed ( \fया 0xC): अगले पृष्ठ की शुरुआत में नियंत्रण लेने के लिए ।


2
इस तरह के उत्तर को प्रोत्साहित किया जाना चाहिए।
user5280911

10

पूरक के रूप में,

1, कैरिज रिटर्न : यह एक प्रिंटर शब्दावली है जिसका अर्थ है कि प्रिंट स्थान को वर्तमान की शुरुआत में बदलना लाइन । कंप्यूटर की दुनिया में, इसका मतलब है कि ज्यादातर मामलों में वर्तमान लाइन की शुरुआत में वापसी लेकिन नई लाइन के लिए शायद ही कभी खड़ा हो।

2, लाइन फ़ीड : यह एक प्रिंटर शब्दावली है जिसका अर्थ है कि एक पंक्ति को आगे बढ़ाना। इसलिए कैरिज रिटर्न और लाइन फीड का उपयोग एक नई लाइन की शुरुआत में प्रिंट करने के लिए किया जाता है। कंप्यूटर की दुनिया में, इसका आमतौर पर न्यूलाइन के समान अर्थ होता है।

3, फॉर्म फ़ीड : यह एक प्रिंटर शब्दावली है, मुझे इस धागे में स्पष्टीकरण पसंद है ।

यदि आप 1980-शैली के प्रिंटर के लिए प्रोग्रामिंग कर रहे थे, तो यह पेपर को बाहर कर देगा और एक नया पृष्ठ शुरू करेगा। आप निश्चित रूप से कभी इसकी जरूरत नहीं है।

http://en.wikipedia.org/wiki/Form_feed

यह लगभग अप्रचलित है और आप सीक्वेंस से बच सकते हैं f- फॉर्म फ़ीड - वास्तव में क्या है? विस्तृत विवरण के लिए।

ध्यान दें, हम कुछ प्लेटफार्मों में newline के लिए खड़े होने के लिए CR या LF या CRLF का उपयोग कर सकते हैं, लेकिन कुछ अन्य प्लेटफार्मों में उनके द्वारा newline को खड़ा नहीं किया जा सकता है। विवरण के लिए विकि को देखें।

LF: मल्टिक्स, यूनिक्स और यूनिक्स जैसे सिस्टम (लिनक्स, OS X, FreeBSD, AIX, Xenix, आदि), BeOS, Amiga, RISC OS, और अन्य

CR: कमोडोर 8-बिट मशीन, एकोर्न बीबीसी, ZX स्पेक्ट्रम, TRS-80, Apple II परिवार, ओबेरॉन, क्लासिक मैक OS से संस्करण 9 तक, MIT लिस्प मशीन और OS-9

रुपये: QNX प्री-पोसिक्स कार्यान्वयन

0x9B: अटारी 8-बिट मशीन ASCII के ATASCII संस्करण (दशमलव में 155) का उपयोग कर

CR + LF: Microsoft Windows, DOS (MS-DOS, PC DOS, आदि), DEC TOPS-10, RT-11, CP / M, MP / M, अटारी टीओएस, OS / 2, सिम्बियन OS, पाम OS, Amstrad CPC, और अधिकांश अन्य प्रारंभिक गैर-यूनिक्स और गैर-आईबीएम OSes

एलएफ + सीआर: एकोर्न बीबीसी और आरआईएससी ओएस ने टेक्स्ट आउटपुट का निर्माण किया।


3

"n" लाइनफ़ीड वर्ण है। इसका अर्थ है वर्तमान रेखा को समाप्त करना और जो कोई भी इसे पढ़ रहा है उसके लिए एक नई पंक्ति में जाना।


3

कैरिज रिटर्न और लाइन फीड भी टाइपराइटर के संदर्भ हैं, जिसमें गाड़ी के बाईं ओर के हैंडल पर एक छोटा सा धक्का (जिस स्थान पर पेपर जाता है) के साथ, कागज सिलेंडर के चारों ओर एक छोटी राशि को घुमाएगा, जिससे आगे बढ़ेगा। दस्तावेज़ एक पंक्ति। यदि आपने एक पंक्ति टाइप करना समाप्त कर दिया है, और अगले पर जारी रखना चाहते हैं, तो आपने कड़ी मेहनत की, दोनों एक पंक्ति को आगे बढ़ाते हुए और गाड़ी को दाहिने तरफ खिसकाते हुए, फिर से बाईं ओर दाईं ओर फिर से लिखना शुरू कर दिया क्योंकि गाड़ी ने प्रत्येक केरोके के साथ यात्रा की । कहने की जरूरत नहीं है, शब्द-लपेट युग के सभी शब्द प्रसंस्करण के लिए डिफ़ॉल्ट सेटिंग थी। पी: डी


2

वे गैर-मुद्रण वर्ण हैं, जो "नई लाइन" की अवधारणा से संबंधित हैं। \ n लाइनफीड है। \ r गाड़ी वापसी है। अलग-अलग प्लेटफ़ॉर्म पर उनके अलग-अलग अर्थ हैं, जो एक वैध नई लाइन के सापेक्ष हैं। विंडोज़ में, एक नई लाइन \ r \ n है। Linux में, \ n मैक में, \ r।

व्यवहार में, आप उन्हें किसी भी स्ट्रिंग में डालते हैं, और स्ट्रिंग के प्रिंट-आउट पर इसका प्रभाव पड़ेगा।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.