2010-12-08 12 views
5

क्या "कोउट" के साथ मुद्रित पाठ को बदलना संभव है? मैं इसे प्रत्येक प्रतिशत के लिए एक नई लाइन के बिना कुछ का वर्तमान प्रतिशत दिखाना चाहता हूं। क्या यह संभव है?सी ++ "आउट" से आउटपुट बदलें

+0

कोउट को कंसोल का सार तत्व नहीं माना जाता है, हालांकि अधिकांश टर्मिनल खुशी से कैरिज रिटर्न कैरेक्टर की व्याख्या करेंगे। – lijie

+0

तब कंसोल के लिए क्या है? – nebkat

+0

आपको अपने प्रश्न को स्पष्ट करने की आवश्यकता है, यह स्पष्ट नहीं है कि आप क्या हासिल करने की कोशिश कर रहे हैं और क्या "परिवर्तन" का अर्थ है। –

उत्तर

11

यह मेरे लिए काम करता है:

std::cout << "1111"; 
std::cout << "\r"; 
std::cout << "2222"; 

\r एक गाड़ी वापसी प्रतीक है। "कर्सर" को लाइन की शुरुआत में वापस रखता है।

वैकल्पिक रूप से आप \b चरित्र का उपयोग कर सकते हैं। यह बैकस्पेस है। मुद्रित होने पर यह एक चरित्र वापस चला जाता है।

+0

आपके पास वास्तव में आवश्यकतानुसार 3 '\ r' (कैरिज रिटर्न) अधिक है (जब तक आप' \ b', बैकस्पेस नहीं थे) – Hasturkun

+0

धन्यवाद, मैंने पहले से ही इसे संपादित किया है। – detunized

+0

उचित अंत-रेखा का प्रतीक "\ n" है, न कि "\ r"। मानक लाइब्रेरी सीआर-एलएफ, एलएफ-सीआर, या जो भी आपके मंच के लिए उपयुक्त है, के रूप में "\ n" की व्याख्या करेगी। Std :: endl भी है, जो अतिरिक्त रूप से बफर की फ्लशिंग को मजबूर करता है। –

1

आम तौर पर यह संभव नहीं है। (कल्पना करें कि cout से आउटपुट सीधे प्रिंटर पर खिलाया जाता है। आप इसे अंतिम पंक्ति "अनप्रिंट" करने के लिए कैसे निर्देश देंगे?) cout आउटपुट स्ट्रीम है, यह इस बात के बारे में कोई धारणा नहीं देता है कि आउटपुट किस माध्यम को भेजा जाता है, या इसके बारे में उस माध्यम की क्षमताओं। विशिष्ट चाल कुछ मामलों में आप जो चाहते हैं उसे प्राप्त कर सकते हैं, लेकिन दूसरों में बहुत ही असफल हो जाएंगे। यदि आप सादा पाठ के सीधे आउटपुट से अधिक गतिशील चाहते हैं, तो शायद cout उपयोग करने का सही टूल नहीं है।

0

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