2010-10-27 16 views
6

मैं अपना प्रोग्राम आउटपुट "सेमी " (सेमी वर्ग) प्राप्त करना चाहता हूं।सी ++ कंसोल आउटपुट में सुपरस्क्रिप्ट

सुपरस्क्रिप्ट 2 कैसे बनाते हैं?

+5

cout << "cm^2"; :) – dgnorton

+0

क्या आप HTML आउटपुट कर सकते हैं और विंडो में प्रदर्शित कर सकते हैं, AJAX के साथ अपडेट कर रहे हैं? –

उत्तर

16

जैसा कि ज़ैन ने कहा था, यह निर्भर करता है कि आपके मानक आउटपुट का समर्थन करने वाला चरित्र कौन सा चरित्र एन्कोडिंग करता है। यदि यह यूनिकोड का समर्थन करता है, तो आप ² (U+00B2) के लिए एन्कोडिंग का उपयोग कर सकते हैं। यदि यह स्रोत फ़ाइलों और मानक आउटपुट के लिए एक ही यूनिकोड एन्कोडिंग का समर्थन करता है, तो आप इसे फ़ाइल में एम्बेड कर सकते हैं। उदाहरण के लिए, मेरी जीएनयू/लिनक्स प्रणाली को UTF-8 दोनों के लिए उपयोग करता है, तो यह ठीक काम करता है:

#include <iostream> 

int main() 
{ 
    std::cout << "cm²" << std::endl; 
} 
+2

सिर्फ यूनिकोड के लिए काम नहीं करता है। आईएसओ -885 9 -1 पर, ² 'char (0xB2)' है। चूंकि मेरा विंडोज सिस्टम स्रोत फ़ाइलों और कंसोल आउटपुट के लिए उपयोग करता है, इसलिए मैं इसे सीधे अपनी स्रोत फ़ाइलों में एम्बेड कर सकता हूं। – MSalters

5

यह कुछ ऐसा नहीं है जो सी ++ अपने आप कर सकता है।

आपको अपने कंसोल सिस्टम की एक विशिष्ट सुविधा का उपयोग करने की आवश्यकता होगी।

मुझे सुपर-स्क्रिप्ट को लागू करने वाले किसी भी कंसोल या टर्मिनल से अवगत नहीं है। हो सकता है मैं गलत हूं।

+0

यह उपलब्ध वर्णों और उपयोग किए गए एन्कोडिंग पर निर्भर करता है। [यूटीएफ -8 हर जगह] (http://utf8everywhere.org/) के साथ यह संभव है। –

2

हाँ, मैं ज़ैन से सहमत हूं।

बेसिक सी ++ में सुपरस्क्रिप्ट या सबस्क्रिप्ट प्रिंट करने के लिए कोई अंतर्निहित कार्यक्षमता नहीं है। आपको किसी भी अतिरिक्त यूआई लाइब्रेरी का उपयोग करने की आवश्यकता है।

+4

तकनीकी रूप से बोलते हुए, सी ++ में किसी विशिष्ट चरित्र को आउटपुट करने की कार्यक्षमता नहीं है। यहां तक ​​कि 'ए' या '2' सी ++ जैसे बुनियादी अल्फान्यूमेरिक वर्णों के लिए वास्तव में उन्हें आउटपुट करने की कोई कार्यक्षमता नहीं है। यह सब करने में सक्षम है उन शाब्दिकों को चरित्र कोड में परिवर्तित कर रहा है जिन्हें बाद में आउटपुट स्ट्रीम द्वारा व्याख्या किया जाता है। आम तौर पर यह स्क्रीन पर 'ए' या '2' देखने में परिणाम देता है लेकिन कुछ अजीब कंसोल और/या फ़ॉन्ट सिस्टम दिया जाता है जिसे आप कुछ भी प्राप्त कर सकते हैं। –

0

सुपर पटकथा या उप पटकथा के लिए आप अक्षर या संख्या के ascii मान का उपयोग करने की जरूरत है।

उदाहरण: x² के लिए सुपर स्क्रिप्टिंग 2 हमें ascii value of super script of 2 (उस के लिए Google में खोजें) यानी 253 प्राप्त करने की आवश्यकता है। एसीआईआई चरित्र टाइप करने के लिए आपको alt + 253 करना होगा, आप किसी भी संख्या को लिख सकते हैं, लेकिन इस मामले में इसकी 253।

उदाहरण के लिए: - cout<<"x²";

तो, अब यह काली स्क्रीन पर प्रदर्शित करना चाहिए।

3

मैं इस कार्य को एक वर्गबद्ध समीकरण सॉल्वर बनाने के उद्देश्य से पूरा करने की कोशिश कर रहा था। ax²cout << के अंदर एएलटी धारण करके 253 टाइप करते समय केवल स्रोत कोड में ठीक से प्रदर्शित किया गया, लेकिन कंसोल में नहीं। कार्यक्रम चलाते समय, यह सुपरस्क्रिप्ट 2 के बजाय एक हल्के रंग के आयत के रूप में दिखाई दिया।

इस के लिए एक सरल समाधान पूर्णांक 253 को चार के रूप में पूर्णांक कास्टिंग करने लगता है, इस तरह ... (char)253

क्योंकि हमारे प्रोफेसर हमें 'जादू संख्या' का उपयोग करने से हतोत्साहित करते हैं, मैंने इसे निरंतर चर के रूप में घोषित किया ... const int superScriptTwo = 253; //ascii value of super script two

फिर, जहाँ मैं कंसोल में प्रदर्शित करने के सुपरस्क्रिप्ट 2 चाहता था, मैं अपने चर एक char इस तरह के रूप में कास्ट ... cout << "f(x) = ax" << (char)superScriptTwo << " + bx + c"; और यह पूरी तरह से प्रदर्शन किया।

शायद इसे char के रूप में शुरू करने के लिए इसे और भी आसान बनाना है, और इसे कास्ट करने के बारे में चिंता न करें। इस कोड को भी जब संकलित कंसोल के लिए एक सुपर स्क्रिप्ट 2 प्रिंट और विंडोज 7 चल रहा है मेरी लेनोवो पर VS2013 में चलेंगे ...

char ssTwo = 253; 
cout << ssTwo << endl; 

मुझे आशा है कि किसी को यह उपयोगी मिल जाएगा। यह मेरी पहली पोस्ट है, इसलिए, अगर मैं 5+ साल पहले पोस्ट किए गए प्रश्न का उत्तर देने के लिए गलती से किसी भी स्टैक ओवरफ़्लो प्रोटोकॉल का उल्लंघन करता हूं तो मैं पहले से माफ़ी मांगता हूं।ऐसी कोई घटना जानबूझकर नहीं थी।

-1

आप एएससीआईआई क्यों कोशिश नहीं करते?
एक चरित्र घोषित करें और इसे 253 का ASCII मान दें और फिर वर्ण मुद्रित करें।
तो आपका कोड इस तरह जाना चाहिए;

char ch = 253; 
cout<<"cm"<<ch; 

यह निश्चित रूप से सेमी प्रिंट होगा।

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