2010-09-30 14 views
5

में एक "£" साइन सम्मिलित करना मैं निम्नलिखित कोड है:सी में एक आउटपुट स्ट्रिंग ++

cout << "String that includes a £ sign"; 

हालांकि, £ संकेत संकलक द्वारा मान्यता प्राप्त किया जा रहा है, और बदले में एक स्वराघात यू प्रदर्शित किया जा रहा है। मैं निम्न विधि का उपयोग कर एक डालने में सक्षम हूं:

cout << "String that includes a " << char(156) << " sign"; 

जहां 156 £ चिह्न का ASCII कोड है। क्या इस तरह से इसे अलग करने के बिना स्ट्रिंग में इस ASCII कोड को शामिल करने का कोई तरीका है? उदाहरण के लिए:

cout << "String that includes a <some way of iserting the £ sign> sign"; 

उत्तर

12

£ एक "ASCII कोड" नहीं है - ASCII 7 बिट्स (0..127) है। विभिन्न विस्तारित 8 बिट वर्ण सेट हैं जिनमें £ शामिल हैं लेकिन इसके लिए कोई एकल मानक नहीं है और £ प्रतीक के विभिन्न वातावरण में विभिन्न अलग-अलग मान हो सकते हैं। यदि आपको अधिकतम पोर्टेबिलिटी के साथ अंतरराष्ट्रीय प्रतीकों की आवश्यकता है तो आपको शायद यूनिकोड का उपयोग करना चाहिए।

+3

हाँ। हालांकि, आप 'std :: wcout << L" स्ट्रिंग का प्रयास कर सकते हैं जिसमें £ चिह्न शामिल है ";'। आपके मंच पर निर्भर करता है, यह काम कर सकता है। स्पष्टीकरण के लिए – sbi

+1

। विजुअल स्टूडियो में: प्रोजेक्ट -> गुण -> कॉन्फ़िगरेशन गुण -> सामान्य -> ​​"मल्टी-बाइट कैरेक्टर सेट का उपयोग करें" से "कैरेक्टर सेट" बदलें "यूनिकोड कैरेक्टर सेट का उपयोग करें" – AndyG

3

एएससीआईआईआई केवल 127 तक वर्णों को परिभाषित करता है। (8 वें बिट को समानता के लिए समझा गया था, जिसे 1 9 60 के दशक की शोर संचरण रेखा के लिए आवश्यक था जब एएससीआईआई डिजाइन किया गया था) इसके अलावा, वर्ण कोड पृष्ठ और फ़ॉन्ट से भिन्न होते हैं। आपके द्वारा उपयोग किए जाने वाले संपादक द्वारा उपयोग किए गए फ़ॉन्ट के बीच एक विसंगति है जो आपके सी ++ कोड को लिखने के लिए उपयोग की जाती है, और आउटपुट प्रदर्शित करने वाले जो कुछ भी प्रदर्शित होता है उसका उपयोग किया जाता है।

तो, आपको अपने आउटपुट डिवाइस पर £ £ प्रदर्शित करने के लिए वर्ण 156 प्रदर्शित करने की आवश्यकता है। आप Alt कुंजी को दबाकर और संख्यात्मक कुंजी पर "0159" दबाकर, WIndows पीसी पर एक वर्ण 156 को स्पष्ट रूप से दर्ज कर सकते हैं। वैकल्पिक रूप से, आप हेक्स में स्ट्रिंग में एक चरित्र कोड का उपयोग कर सकते हैं:

cout << "String that includes a \x9C sign"; 
7

आप अपने हेक्साडेसिमल कोड के साथ एक चरित्र को सम्मिलित करने के \x भागने अनुक्रम का उपयोग कर सकते हैं। आपके मामले में

cout << "String that includes a \x9C sign"; 

पॉल की तरह कहते हैं, यह सिर्फ कोड 156 के साथ एक चरित्र आउटपुट, लेकिन कोई गारंटी नहीं है कि यह वास्तव में विभिन्न प्रणालियों पाउंड चिह्न है देता है।

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