331

क्या निम्नलिखित नियंत्रण वर्ण का अर्थ है:कैरिज रिटर्न, लाइनफीड और फॉर्म फीड क्या हैं?

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

  2. लाइन फ़ीड

  3. फार्म फ़ीड

+6

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

+2

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

उत्तर

21

है Wikipedia पर एक नज़र:

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

2

"\ n" लाइनफीड चरित्र है। इसका मतलब है कि वर्तमान लाइन को समाप्त करें और इसे पढ़ने वाले किसी भी व्यक्ति के लिए एक नई लाइन पर जाएं।

12

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

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

+0

असल में 'कैरिज रिटर्न' प्रिंट हेड को बाईं ओर नहीं ले जाता है, लेकिन गाड़ी चलाता है जो प्लेट को दाईं ओर रखता है। ऐसा करने के लिए बाएं हाथ से अभिनय किया गया था जो एक लंबे लीवर होता था। Http://en.wikipedia.org/wiki/Typewriter –

+2

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

0

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

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

463

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

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

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

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

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

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

+8

मैं पुष्टि कर सकता हूं कि [ओएस एक्स] (http://en.wikipedia.org/wiki/OS_X) एनआईएल का उपयोग लाइन टर्मिनेटर के रूप में करता है, जैसे यूनिक्स (क्योंकि ओएस एक्स * है * यूनिक्स)। सीआर का इस्तेमाल [मैक ओएस 9] (http://en.wikipedia.org/wiki/Mac_OS_9) और नीचे किया गया था। –

+1

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

+0

क्या वह फ़ीड नियंत्रण '\ x0c' नहीं है? – Tjorriemorrie

25

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

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

पूर्व के लिए

:

लिखें C++

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

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

} 

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

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

abc > xyz.doc

,210

फिर फ़ाइल xyz.doc आप hellooo और Hiiii के बीच वास्तविक पृष्ठ विराम देख सकते हैं खोलने ....

+9

मुझे नहीं पता था कि वैध '.doc' होगा। – NReilingh

+1

यह नहीं है! शब्द वास्तविक पाठ फ़ाइलों को भी पढ़ सकता है। – llouk

3

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

10

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

15

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

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

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

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

+1

ओएसएक्स (बीएसडी यूनिक्स के आधार पर) के रिलीज के साथ, मैक '\ n' - यूनिक्स लाइन एंडिंग पर स्विच किया गया। –

+0

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

69

\r गाड़ी वापसी है और कर्सर वापस की तरह अगर मैं

printf("stackoverflow\rnine") 
ninekoverflow 

do- जाएगा ले जाता है यह "stackoverflow" की शुरुआत के लिए कर्सर स्थानांतरित कर दिया और "नौ" के बाद से शुरू होने वाले चार अक्षर अधिलेखित कर देता है इसका मतलब है चार चरित्र लंबा।

\n नई लाइन चरित्र जो लाइन बदलता है और

printf("stackoverflow\nnine") 
stackoverflow 
nine 

\f जैसे एक नई लाइन की शुरुआत के लिए कर्सर ले जाता है प्रपत्र फ़ीड, इसके उपयोग अप्रचलित हो गया है, लेकिन यह खरोज देने के लिए प्रयोग किया जाता है जैसे

printf("stackoverflow\fnine") 
stackoverflow 
      nine 

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

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

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

+0

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

+0

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

5

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

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

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

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

यदि आप 1 9 80 के दशक के स्टाइल प्रिंटर के लिए प्रोग्रामिंग कर रहे थे, तो यह पेपर निकाल देगा और एक नया पृष्ठ शुरू करेगा। आप लगभग की आवश्यकता नहीं है।

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

यह लगभग अप्रचलित है और आप विस्तृत विवरण के लिए Escape sequence \f - form feed - what exactly is it? देख सकते हैं।

नोट, हम कुछ प्लेटफार्मों में नई लाइन के लिए खड़े होने के लिए सीआर या एलएफ या सीआरएलएफ का उपयोग कर सकते हैं लेकिन कुछ अन्य प्लेटफार्मों में नई लाइन खड़ी नहीं हो सकती है। विवरण के लिए wiki Newline का संदर्भ लें।

वामो: मॉलटिक्स, यूनिक्स और यूनिक्स सिस्टम (लिनक्स, ओएस एक्स, FreeBSD, AIX, Xenix, आदि), BeOS, Amiga, RISC ओएस, और दूसरों

सीआर: कमोडोर 8 -बिट मशीनों, शाहबलूतिक बीबीसी, ZX स्पेक्ट्रम, टीआरएस -80, एप्पल द्वितीय परिवार, ओबेरोन, क्लासिक मैक ओएस संस्करण 9 अप करने के लिए, एमआईटी लिस्प मशीन और ओएस-9

RS: QNX पूर्व POSIX कार्यान्वयन

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

सीआर + वामो: माइक्रोसॉफ्ट विंडोज, डॉस (MS-DOS, पीसी डॉस, आदि), DEC TOPS-10, आर टी -11, CP/M, सांसद/एम, अटारी सेवा की शर्तें, ओएस/2, सिम्बियन ओएस, पाम ओएस, Amstrad सीपीसी, और अधिकांश अन्य जल्दी गैर यूनिक्स और गैर आईबीएम OSes

वामो + सीआर: शाहबलूतिक बीबीसी और RISC ओएस पाठ उत्पादन spooled।

संबंधित मुद्दे