निम्नलिखित नियंत्रण वर्णों का अर्थ क्या है:
कैरिज रिटर्न
रेखा भरण
भोजन की शैली
निम्नलिखित नियंत्रण वर्णों का अर्थ क्या है:
कैरिज रिटर्न
रेखा भरण
भोजन की शैली
जवाबों:
कैरेज रिटर्न का मतलब है, नीचे की ओर बढ़े बिना वर्तमान लाइन की शुरुआत में लौटना। नाम प्रिंटर की गाड़ी से आता है, क्योंकि मॉनिटर तब दुर्लभ थे जब नाम रखा गया था। यह सामान्यतः \r
संक्षिप्त रूप में बच जाता है , संक्षिप्त रूप में CR , और ASCII मान है 13
या 0x0D
।
लाइनफीड का अर्थ है अगली पंक्ति में नीचे की ओर बढ़ना; हालाँकि, इसका नाम बदलकर नाम बदल दिया गया है। "न्यूलाइन" के रूप में प्रयुक्त, यह लाइनों को समाप्त करता है (आमतौर पर अलग लाइनों के साथ भ्रमित )। यह सामान्यतः \n
संक्षिप्त रूप में बच जाता है , संक्षिप्त रूप से LF या NL, और ASCII मान 10
या होता है 0x0A
। CRLF (लेकिन CRNL नहीं) जोड़ी के लिए उपयोग किया जाता है \r\n
।
फ़ॉर्म फ़ीड का अर्थ है अगले "पृष्ठ" पर नीचे जाना। यह आमतौर पर पेज सेपरेटर के रूप में उपयोग किया जाता था, लेकिन अब इसे सेक्शन सेपरेटर के रूप में भी उपयोग किया जाता है। (यह तार्किक रूप से स्वतंत्र कार्यों या कार्यों के समूहों को विभाजित करने के लिए स्रोत कोड में असामान्य रूप से उपयोग किया जाता है।) जब आप "पृष्ठ विराम सम्मिलित करते हैं" तो पाठ संपादक इस चरित्र का उपयोग कर सकते हैं। यह आमतौर पर के रूप में बच जाता है \f
, संक्षिप्त एफएफ , और ASCII मूल्य 12
या है 0x0C
।
नियंत्रण पात्रों के रूप में, उनकी व्याख्या विभिन्न तरीकों से की जा सकती है।
सबसे आम अंतर (और शायद केवल एक ही चिंता का विषय है) विंडोज पर CRLF, यूनिक्स पर एनएल-लाइक और पुराने मैक पर सीआर (ओएस एक्स के साथ स्थिति यूनिक्स की तरह बदल गई है) के साथ लाइनें समाप्त होती हैं। एलएफ से एनएल के अर्थ में बदलाव पर ध्यान दें, ठीक उसी चरित्र के लिए, विंडोज और यूनिक्स के बीच अंतर देता है। (विंडोज, ज़ाहिर है, यूनिक्स की तुलना में नया है, इसलिए उसने इस शब्दार्थिक बदलाव को नहीं अपनाया। मुझे सीआर का उपयोग करने वाले मैक का इतिहास नहीं पता है।) कई पाठ संपादक इन तीन प्रारूपों में से किसी में भी फाइल पढ़ सकते हैं और उनके बीच परिवर्तित कर सकते हैं। , लेकिन नहीं सभी उपयोगिताओं कर सकते हैं।
फॉर्म फ़ीड थोड़ा अधिक दिलचस्प है (भले ही कम आमतौर पर सीधे इस्तेमाल किया जाता है), और पृष्ठ विभाजक की सामान्य परिभाषा के साथ, यह केवल लाइनों के बीच आ सकता है (उदाहरण के लिए एनएल, सीआरएलएफ, या सीआर के न्यूलाइन अनुक्रम के बाद) या शुरुआत में या फ़ाइल का अंत।
\x0c
?
\r
गाड़ी वापसी है और कर्सर को वापस ले जाता है जैसे कि मैं करूँगा-
printf("stackoverflow\rnine")
ninekoverflow
इसका अर्थ है कि यह कर्सर को "स्टैकओवरफ़्लो" की शुरुआत में स्थानांतरित कर दिया है और "नौ" चार वर्णों के लंबे होने से शुरुआती चार वर्णों को अधिलेखित कर देता है।
\n
नई लाइन वर्ण है जो लाइन को बदलता है और कर्सर को नई लाइन की शुरुआत में ले जाता है जैसे-
printf("stackoverflow\nnine")
stackoverflow
nine
\f
फॉर्म फीड है, इसका उपयोग अप्रचलित हो गया है लेकिन इसका उपयोग इंडेंटेशन देने के लिए किया जाता है
printf("stackoverflow\fnine")
stackoverflow
nine
अगर मैं लिखूंगा जैसे-
printf("stackoverflow\fnine\fgreat")
stackoverflow
nine
great
printf
उपयोगिता का उपयोग कर सकते हैं । या यहां तक कि उपयोग echo -en
जो एक बैश बिलिन है।
\f
कि आपने वास्तव में वर्णित किया है \v
- एक ऊर्ध्वाधर टैब, बशर्ते दोनों कंसोल में समान दिखें।
printf("123\f456\f789");
कंसोल पर शो /> <बोल्ड> 123456789 </ बोल्ड>।
विकिपीडिया पर एक नज़र डालें :
ASCII या संगत वर्ण सेट पर आधारित सिस्टम LF (लाइन फीड, '\ n', 0x0A, 10 दशमलव में) या CR (कैरिज रिटर्न, '\ r', 0x0D, 13 दशमलव में 13) व्यक्तिगत रूप से उपयोग करते हैं, या CR इसके बाद आते हैं। LF (CR + LF, 0x0D 0x0A)। ये वर्ण प्रिंटर कमांड पर आधारित होते हैं: लाइन फीड ने संकेत दिया था कि कागज की एक लाइन प्रिंटर से बाहर फीड होनी चाहिए, और एक गाड़ी वापसी ने संकेत दिया कि प्रिंटर गाड़ी चालू लाइन की शुरुआत में वापस आनी चाहिए।
\f
पृष्ठ विराम के लिए उपयोग किया जाता है। आप कंसोल में कोई प्रभाव नहीं देख सकते हैं। लेकिन जब आप अपनी फ़ाइल में इस वर्ण का उपयोग करते हैं तो आप अंतर देख सकते हैं।
अन्य उदाहरण यह है कि यदि आप किसी फ़ाइल पर अपने आउटपुट को रीडायरेक्ट कर सकते हैं तो आपको फ़ाइल लिखने या फ़ाइल हैंडलिंग का उपयोग करने की आवश्यकता नहीं है।
पूर्व के लिए:
इस कोड को c ++ में लिखें
void main()
{
clrscr();
cout<<"helloooooo" ;
cout<<"\f";
cout<<"hiiiii" ;
}
और जब आप इसे संकलित करते हैं तो यह एक exe (पूर्व के लिए abc.exe
) उत्पन्न करता है।
तब आप इसका उपयोग करके अपने आउटपुट को फ़ाइल में पुनर्निर्देशित कर सकते हैं:
abc > xyz.doc
फिर फ़ाइल खोलें जिसे xyz.doc
आप वास्तविक पेज को हेलो और hiiii के बीच तोड़ कर देख सकते हैं ...।
उपरोक्त जानकारी के अलावा, 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 होगा।
WRITE.EXE
(उर्फ वर्डपैड) उन्हें ठीक प्रदर्शित कर सकते हैं।
पुराने पेपर-प्रिंटर टर्मिनलों पर, अगली पंक्ति में आगे बढ़ते हुए दो क्रियाएं शामिल थीं: प्रिंट हेड को क्षैतिज स्कैन रेंज (कैरिज रिटर्न) की शुरुआत में ले जाना और पेपर के रोल को आगे बढ़ने (लाइन फीड) पर प्रिंट करना।
चूंकि अब हम पेपर-प्रिंटर टर्मिनलों का उपयोग नहीं करते हैं, इसलिए वे क्रियाएं वास्तव में प्रासंगिक नहीं हैं, लेकिन उन्हें संकेत देने के लिए उपयोग किए जाने वाले वर्ण विभिन्न अवतारों में फंस गए हैं।
आईबीएम 1403 प्रभाव प्रिंटर पर विचार करें। सीआर ने प्रिंट हेड को लाइन की शुरुआत में स्थानांतरित किया, लेकिन कागज को आगे नहीं बढ़ाया। यह "ओवरप्रिन्टिंग" के लिए अनुमति देता है, एक पंक्ति में आउटपुट की कई पंक्तियाँ रखता है। अंडरलाइनिंग जैसी चीजों को इस तरह से हासिल किया गया था, जैसा कि बोल्ड प्रिंट था। एलएफ ने कागज को एक पंक्ति में उन्नत किया। यदि कोई CR नहीं था, तो अगली पंक्ति एक कंपित-चरण के रूप में प्रिंट होगी क्योंकि LF ने प्रिंट हेड को स्थानांतरित नहीं किया था। FF ने कागज को अगले पृष्ठ पर आगे बढ़ाया। यह आम तौर पर नए पृष्ठ पर पहली पंक्ति की शुरुआत के लिए प्रिंट सिर को भी स्थानांतरित करता है, लेकिन इसके लिए आपको सीआर की आवश्यकता हो सकती है। यह सुनिश्चित करने के लिए, अधिकांश प्रोग्रामर एक पृष्ठ पर अंतिम पंक्ति के अंत में CRLF के बजाय CRFF को कोडित करते हैं क्योंकि FF द्वारा बनाया गया एक अतिरिक्त CR मायने नहीं रखता।
संक्षेप में :
Carriage_return ( \r
या 0xD
): पर नियंत्रण लेने के लिए शुरू करने की एक ही पंक्ति ।
Line_Feed ( \n
या 0xA
): अगली पंक्ति की शुरुआत में नियंत्रण रखना ।
form_feed ( \f
या 0xC
): अगले पृष्ठ की शुरुआत में नियंत्रण लेने के लिए ।
पूरक के रूप में,
1, कैरिज रिटर्न : यह एक प्रिंटर शब्दावली है जिसका अर्थ है कि प्रिंट स्थान को वर्तमान की शुरुआत में बदलना लाइन । कंप्यूटर की दुनिया में, इसका मतलब है कि ज्यादातर मामलों में वर्तमान लाइन की शुरुआत में वापसी लेकिन नई लाइन के लिए शायद ही कभी खड़ा हो।
2, लाइन फ़ीड : यह एक प्रिंटर शब्दावली है जिसका अर्थ है कि एक पंक्ति को आगे बढ़ाना। इसलिए कैरिज रिटर्न और लाइन फीड का उपयोग एक नई लाइन की शुरुआत में प्रिंट करने के लिए किया जाता है। कंप्यूटर की दुनिया में, इसका आमतौर पर न्यूलाइन के समान अर्थ होता है।
3, फॉर्म फ़ीड : यह एक प्रिंटर शब्दावली है, मुझे इस धागे में स्पष्टीकरण पसंद है ।
यदि आप 1980-शैली के प्रिंटर के लिए प्रोग्रामिंग कर रहे थे, तो यह पेपर को बाहर कर देगा और एक नया पृष्ठ शुरू करेगा। आप निश्चित रूप से कभी इसकी जरूरत नहीं है।
यह लगभग अप्रचलित है और आप सीक्वेंस से बच सकते हैं 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
एलएफ + सीआर: एकोर्न बीबीसी और आरआईएससी ओएस ने टेक्स्ट आउटपुट का निर्माण किया।
कैरिज रिटर्न और लाइन फीड भी टाइपराइटर के संदर्भ हैं, जिसमें गाड़ी के बाईं ओर के हैंडल पर एक छोटा सा धक्का (जिस स्थान पर पेपर जाता है) के साथ, कागज सिलेंडर के चारों ओर एक छोटी राशि को घुमाएगा, जिससे आगे बढ़ेगा। दस्तावेज़ एक पंक्ति। यदि आपने एक पंक्ति टाइप करना समाप्त कर दिया है, और अगले पर जारी रखना चाहते हैं, तो आपने कड़ी मेहनत की, दोनों एक पंक्ति को आगे बढ़ाते हुए और गाड़ी को दाहिने तरफ खिसकाते हुए, फिर से बाईं ओर दाईं ओर फिर से लिखना शुरू कर दिया क्योंकि गाड़ी ने प्रत्येक केरोके के साथ यात्रा की । कहने की जरूरत नहीं है, शब्द-लपेट युग के सभी शब्द प्रसंस्करण के लिए डिफ़ॉल्ट सेटिंग थी। पी: डी
वे गैर-मुद्रण वर्ण हैं, जो "नई लाइन" की अवधारणा से संबंधित हैं। \ n लाइनफीड है। \ r गाड़ी वापसी है। अलग-अलग प्लेटफ़ॉर्म पर उनके अलग-अलग अर्थ हैं, जो एक वैध नई लाइन के सापेक्ष हैं। विंडोज़ में, एक नई लाइन \ r \ n है। Linux में, \ n मैक में, \ r।
व्यवहार में, आप उन्हें किसी भी स्ट्रिंग में डालते हैं, और स्ट्रिंग के प्रिंट-आउट पर इसका प्रभाव पड़ेगा।