2011-08-10 7 views

उत्तर

82

इन दो चरित्र:

  • \r गाड़ी वापसी है,
  • \n लाइन फ़ीड है।

दो वर्ण संयुक्त विंडोज पर एक नई लाइन का प्रतिनिधित्व करते हैं। जबकि लिनक्स पर, \n नई लाइन का प्रतिनिधित्व करता है। यह कर्सर को लिनक्स पर नई लाइन की शुरुआत में ले जाता है। विंडोज़ पर, कर्सर कंसोल में उसी कॉलम पर और अगली पंक्ति पर रहेगा।

\r लिनक्स पर विंडोज पर समान प्रभाव पड़ता है: कर्सर को लाइन की शुरुआत में ले जाता है। \r\n के बजाय उसी लाइन पर अलग-अलग जानकारी प्रिंट करना संभव है।

+1

+1। ओपी के लिए अतिरिक्त जानकारी के रूप में: [न्यूलाइन] (http://en.wikipedia.org/wiki/Newline)। – informatik01

2

हां, यह दो पात्र हैं: कैरिज रिटर्न '\ r' इसके बाद लाइनफीड '\ n'।

5

सेटिंग पर निर्भर करता है। \r\n दो बाइट चौड़ा है (ASCII, UTF-8, आदि में), लेकिन I/O पुस्तकालयों जैसे सी stdio लाइब्रेरी और अन्य, पाठ मोड में परिचालन करते समय, \n और \r\n के बीच अर्ध-पारदर्शी रूप से अनुवाद कर सकते हैं।

अर्थात, और एक Windows मंच पर, एक सी कार्यक्रम

while ((c = getc(txt_in)) != EOF) 
    printf("%02x\n", c); 

के साथ एक पाठ मोड धारा txt_in पढ़ने \r के लिए ASCII कोड रिपोर्ट नहीं करेगा। इसके विपरीत, putc('\n', txt_out) वास्तव में टेक्स्ट-मोड स्ट्रीम txt_out पर \r\n लिखेंगे।

+0

डाउनवोट क्यों? –

4

विंडोज \r\n और किसी अन्य दो वर्णों के बीच अंतर नहीं करता है। हालांकि, एक ऐसी स्थिति है जहां इसे एक चरित्र के रूप में माना जाता है: यदि आप सी रनटाइम का उपयोग करते हैं और फ़ाइल के रूप में फ़ाइल खोलते हैं, तो \r\n फ़ाइल में \n के रूप में पढ़ा जाएगा, और \n फ़ाइल को \r\n के रूप में लिखा जाएगा।

7

असल \r is 0x0D (^M) and \n is 0x0A (^J), लेकिन ..... खिड़कियों पर:

\n will write 0x0D 0x0A 
यूनिक्स पर

:

\r will write 0x0D 
\n will write 0x0A 
+0

इस प्रकार विंडोज़ पर हमें \ x0A स्पष्ट रूप से प्रिंट करना चाहिए यदि हम उसी कॉलम में रहते हुए 1 लाइन नीचे ले जाना चाहते हैं? – Viet

+0

यदि मैं सही हूं, तो टेक्स्ट स्ट्रीम के रूप में फ़ाइलों को खोलते समय यह चरित्र रूपांतरण होने के कारण होता है। टेक्स्ट स्ट्रीम की बजाय बाइनरी स्ट्रीम के रूप में 'stdout' का इलाज करने के परिणामस्वरूप विंडोज़ पर '0x0D 0x0A' की बजाय' \ n' एकमात्र' 0x0A' लिखना होगा। @FredFoo के एवर देखें। – loxaxs

1

मैं कुछ परीक्षण नोटपैड ++ और उदात्त पाठ 2 विंडोज पर साथ (फैंसी कुछ भी नहीं) का आयोजन किया है, और यह पता चला है कि \r और \n वास्तव में 2 अलग चरित्र है, लेकिन ...

अलग पाठ संपादक सम्मिलित हो सकता है या वे \r नहीं डाल सकते हैं जब वापसी कुंजी दबाया जाता है।

अपने पाठ संपादक में निम्नलिखित का प्रयास करें:

1 
2 
3 
4 
5 

फिर, Ctrl + F प्रेस नियमित अभिव्यक्ति को सक्षम और \r लिए खोज करें। आपके टेक्स्ट एडिटर और इसकी सेटिंग्स के आधार पर, आप प्रत्येक पंक्ति के अंत में एक चरित्र को 'हिट' या 'हिट नहीं' कर सकते हैं। ऊपर पाठ एक और संपादक से कॉपी-पेस्ट किया है, तो व्यवहार भी भिन्न हो सकती है ...

कुछ पाठ संपादक उनकी सेटिंग, में अनुकूलन जहां अगर आप \r\n पसंद करते हैं या यूनिक्स शैली \n जब सम्मिलित करने के लिए निर्दिष्ट कर सकते हैं के लिए अनुमति आप पर लौटें। उस पर, वे आपको को को फ़ाइल सहेजने से पहले \r वर्ण को अलग करके या डालने से एक सतत शैली को लागू करने की अनुमति दे सकते हैं।

+4

आपको टेक्स्ट एडिटर पर भरोसा नहीं करना चाहिए, क्योंकि उनमें से कुछ फ़ाइल लोड करते समय कुछ जादू कर सकते हैं। सत्यापित करने का सही तरीका फ़ाइल को हेक्स संपादक में खोलना होगा। – Telemat

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