std::endl
सिस्टम के लिए उपयुक्त एक नई लाइन डालें। रनटाइम पर स्ट्रिंग के रूप में न्यूलाइन अनुक्रम निर्धारित करने के लिए आप
ostringstream
का उपयोग कर सकते हैं।
#include <sstream>
int main()
{
std::ostringstream oss;
oss << std::endl;
std::string thisIsEnvironmentNewline = oss.str();
}
संपादित: * क्यों यह शायद काम नहीं करेगा पर नीचे टिप्पणी देखें।
#ifdef _WIN32
#define NEWLINE "\r\n"
#elif defined macintosh // OS 9
#define NEWLINE "\r"
#else
#define NEWLINE "\n" // Mac OS X uses \n
#endif
:
आप जानते हैं कि आपके प्लेटफार्मों विंडोज, मैक, और यूनिक्स तक ही सीमित रहेगा, तो आप पूर्वनिर्धारित संकलक मैक्रो का उपयोग कर सकते हैं (listed here) संकलन समय पर endline अनुक्रम यह निर्धारित करने के
अधिकांश गैर-विंडोज़ और गैर-ऐप्पल प्लेटफॉर्म कुछ प्रकार के यूनिक्स संस्करण हैं जो \n
का उपयोग करते हैं, इसलिए उपरोक्त मैक्रोज़ को कई प्लेटफ़ॉर्म पर काम करना चाहिए। हां, मुझे सभी संभावित प्लेटफार्मों के लिए संकलन समय पर एंडलाइन अनुक्रम निर्धारित करने के लिए किसी भी पोर्टेबल तरीके से पता नहीं है।
स्रोत
2011-07-28 19:55:57
"स्थानीय" न्यूलाइन को आउटपुट क्यों करना आवश्यक है? मेरी इच्छा है कि लोग इस धारणा के साथ दुनिया को प्रदूषित करना बंद कर दें कि "\ r \ n" विंडोज़ पर एक नई लाइन है। विंडोज़ पर हर एक पाठ संपादक के बारे में बस "\ n" हैंडल करता है। मैंने कभी सुना है कि एकमात्र काउंटर उदाहरण नोटपैड है! –
इस प्रश्न ने मुझे एक और स्पॉन बनाया: http://stackoverflow.com/questions/6865398/inserting-endline-into-a-stringstream –
@Andre जिन्होंने आउटपुट के बारे में कुछ भी कहा? –