"सही" इस पर निर्भर करता है कि आप वास्तव में क्या करना चाह रहे हैं।
\ n आपको हमेशा एक "यूनिक्स शैली" की समाप्ति प्रदान करेगा। \ r \ n आपको हमेशा एक "डॉस स्टाइल" लाइन देगा। % n आपको उस प्लेटफ़ॉर्म के लिए समाप्त होने वाली रेखा देगा जिस पर आप चल रहे हैं
C इसे अलग तरीके से हैंडल करता है। आप "टेक्स्ट" या "बाइनरी" मोड में एक फ़ाइल खोलने का विकल्प चुन सकते हैं। यदि आप फ़ाइल को बाइनरी मोड में खोलते हैं तो \ n आपको "यूनिक्स स्टाइल" लाइन समाप्त करने के लिए देगा और "\ r \ n" आपको "डॉस स्टाइल" लाइन समाप्त करने देगा। यदि आप डॉस / विंडोज सिस्टम पर फाइल को "टेक्स्ट" मोड में खोलते हैं, तो जब आप \ n लिखते हैं तो फाइल हैंडलिंग कोड इसे \ r \ n में बदल देता है। इसलिए टेक्स्ट मोड में एक फ़ाइल खोलकर और \ n का उपयोग करके आप प्लेटफ़ॉर्म की विशिष्ट लाइन को समाप्त करते हैं।
मैं देख सकता हूं कि जावा के डिजाइनर "पाठ" और "बाइनरी" फ़ाइल मोड के बारे में सी के हैकी विचारों को दोहराने के लिए क्यों नहीं चाहते थे।