2010-01-06 10 views
6

मैं एक ASCII चरित्र को "char" शाब्दिक में कैसे संग्रहीत करूं?एएससीआईआई डेटा का उपयोग कर चरित्र को कैसे असाइन करें?

दशमलव: 028
ऑक्टल: 034
हेक्स: 01C
बाइनरी: 00011100

// This works in C/C++, but not C#: 
static const char FS = 0x1C; // File Separator 
+1

नोट: अप्रबंधित सी # जैसी कोई चीज़ नहीं है। – ChaosPandion

+0

कैओस: हाँ वहाँ है: http://msdn.microsoft.com/en-us/library/aa288474%28VS.71%29.aspx –

+2

यह अभी भी प्रबंधित है। आप बस असुरक्षित चीजें कर सकते हैं। – ChaosPandion

उत्तर

5

मुझे लगता है कि '\u001C' काम करेगा।

+0

आज मेरे उत्तर में यह बदल गया, क्योंकि मुझे लगता है कि यह वह संस्करण है जिसका मैं वास्तव में उपयोग करता हूं। धन्यवाद मार्क। बीटीडब्ल्यू: उत्सव अवतार खोदना। मैं अपने गुरुत्वाकर्षण को बदलने के लिए प्रतीत नहीं कर सकता। हर बार जब मैंने अतीत में कोशिश की है, तो मेरा अवतार कुछ एसओ असाइन किए गए जेनेरिक को बदल देता है। – jp2code

13

ASCII वर्ण मैं अपने विशेष वर्ण के लिए उपयोग करना चाहते हैं फ़ाइल सेपरेटर प्रतीक है स्थैतिक संशोधक आवश्यक नहीं है और आपको स्पष्ट रूप से अपने int को char में डालना होगा।

const char FS = (char)0x1C; 
+0

धन्यवाद। मुझे लगता है कि यह इतना आसान था, मैंने कलाकारों के बारे में भी सोचा नहीं था। – jp2code

2

कॉन्स चार एफएस = 'x xC';

+4

'\ x' एस्केप अनुक्रम शुद्ध बुराई है - कम से कम तारों के लिए। उदाहरण के लिए, "\ x9Bad कंपाइलर" और "\ x9Good कंपाइलर" के बीच का अंतर स्पॉट करने के लिए बहुत मुश्किल है। हालांकि, मुझे लगता है कि एक सिंगल चार के लिए इतना बुरा नहीं है। हालांकि मैं अभी भी '\ u001c' का उपयोग करता हूं। –

+0

कैओसपैंडियन इसे पहले मिला। मैंने '\ 1 सी' का उपयोग करने की कोशिश की थी, लेकिन यह काम नहीं किया। धन्यवाद! – jp2code

+0

@ जोन स्कीट: लेकिन आप चार अंकों के साथ आसानी से '\ x' का उपयोग कर सकते हैं क्योंकि आप चार अंकों के साथ \ u' कर सकते हैं। उदाहरण के लिए '" \ x0009 बाड कंपाइलर "' '\ u0009 बाड कंपाइलर" के रूप में संकलित करेगा। और 'char' अक्षर के लिए '\ x' अधिक सुविधाजनक है, क्योंकि आपके पास सभी चार अंकों का उपयोग करने के लिए * नहीं है। स्ट्रिंग के लिए यह मुश्किल हो सकता है यदि आप सावधान नहीं हैं, जैसा कि आप इंगित करते हैं। लेकिन अगर कोई अस्पष्टता नहीं है (कहें कि अनुक्रम के बाद कोई अल्फान्यूमेरिक नहीं है), तो मैं अभी भी '\ x' पसंद करता हूं। वैसे, मैं दृढ़ता से "बुरा या खतरनाक निर्माण" शब्द का अर्थ ** बुराई ** के उपयोग पर जोर देता हूं। –

0

यदि आप इसे स्ट्रीम में लिखने जा रहे हैं तो एन्कोडिंग से सावधान रहें; .NET के वर्ण और स्ट्रिंग्स यूटीएफ -16 एन्कोडेड हैं, इसलिए वास्तव में उन्मूलन के आधार पर 001C (या 1C00 के रूप में लिखा जाएगा; मुझे याद नहीं है)। स्ट्रीम खोलते समय उचित एन्कोडिंग निर्दिष्ट करके आप इस समस्या से बच सकते हैं।

संपादित करें: असल में, यह मामला नहीं है! इसका परीक्षण करने के बाद, StreamWriter एट अल के लिए डिफ़ॉल्ट व्यवहार सिस्टम के वर्तमान एएनएसआई कोड पेज (आमतौर पर आईएसओ -885 9 -1) का उपयोग करना है, इसलिए यह वास्तव में अपेक्षित 8-बिट प्रारूप में लिखा जाता है। यह निश्चित रूप से गैर-एएनएसआई पात्रों के लिए अप्रत्याशित परिणाम देगा।

+0

@ जांचकर्ता: यूटीएफ -16 धाराओं को रोकने के लिए जॉन स्कीट और मार्क ग्रेवेल का सुझाव '\ u001C' का उपयोग करने का सुझाव होगा? – jp2code

+0

@ jp2code: मैं वास्तव में गलत था, इसलिए कभी भी ध्यान न दें :) हालांकि, नहीं, जिस तरीके से चरित्र असाइन किया गया है, वह इस बात को प्रभावित नहीं करेगा कि यह धाराओं को कैसे लिखा जाता है। –

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

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