सी ++ एनम में एक पत्र के बजाय ASCII का उपयोग करना

मेरे पास एक enum है:

enum Items {
    PAC = 'C', GHOST = '@', FRUIT = 'o', POINTS = '.', WALL = 'w', EMPTY = ' ', UNDEFINED = '+'
} fieldItems;

और मैं ascii तालिका के 178 के साथ डब्ल्यू बदलना चाहता हूँ। मुझे पता है कि मैं इसे कैसे आवंटित करता हूं: char w = 178; लेकिन मैं enum के डब्ल्यू कैसे कहूँगा कि यह एक char है?

0
जोड़ा संपादित
विचारों: 1
यह ascii नहीं है। कोड पेज 437 से हार्ड-कोडिंग वर्ण कोड बिल्कुल ठीक से पोर्ट नहीं करते हैं।
जोड़ा लेखक Hans Passant, स्रोत

2 उत्तर

WALL='\xB2'
0
जोड़ा

क्यों नहीं:

WALL = 178

यदि आप enum के अंतर्निहित प्रकार को नियंत्रित करना चाहते हैं, तो आपको इसका उपयोग करना चाहिए

enum Items : char { ... };

वैसे भी। ध्यान दें कि केवल enum प्रकार आइटम में एक अंतर्निहित प्रकार है, प्रत्येक मान नहीं। आप संकलक को नहीं बता सकते कि WALL एक विशिष्ट प्रकार का है।

0
जोड़ा
यह मुझे एक अजीब त्रुटि देता है: चेतावनी: स्कॉप्ड एनम्स केवल -std = c ++ 11 या -std = gnu ++ 11 के साथ उपलब्ध है [डिफ़ॉल्ट रूप से सक्षम]
जोड़ा लेखक AnnoyedGuy, स्रोत
@AnoyoyedGuy यह अजीब नहीं है, यह सच है: एनम के प्रकार को नियंत्रित करने के लिए उपरोक्त तरीके से आपको C ++ 11 की आवश्यकता है। यदि आप C ++ 11 का उपयोग नहीं कर सकते हैं, तो बस WALL = 178 का उपयोग करें, क्योंकि यदि आप 'x x2' जैसे अन्य तरीकों का उपयोग करते हैं तो इससे कोई वास्तविक अंतर नहीं आएगा। या <�कोड> चार (178) - परिणाम वही होगा।
जोड़ा लेखक Daniel Frey, स्रोत