2015-11-11 9 views
7

के अलावा बेस के साथ ओस्ट्रीम का उपयोग करें मेरे पास बहुपद वर्ग है, और इसका प्राकृतिक प्रतिनिधित्व इसके गुणांक है। यदि एक गुणांक सेट किया गया है, तो यह द्विपदीय आधार के लिए 1, त्रिकोणीय आधार के लिए 1 या 2 इत्यादि। उदाहरण के लिए, एक द्विपक्षीय आधार पर, एक्स + 1 को 101 के रूप में दर्शाया गया है; और एक त्रिकोणीय आधार पर, 2 एक्स + 1 201 के रूप में दर्शाया गया है।8, 10 और 16

कक्षा operator<< अधिभार प्रदान करती है। आंतरिक रूप से, वर्ग एक अभिन्न सरणी का उपयोग कर गुणांक का प्रतिनिधित्व करता है।

ostringstream oss; 
for (size_t i=0; i<v.size(); i++) 
    oss << v[i]; 

समस्या मैं कर रहा हूँ मैं 8, 10 और 16 ios_basestd::oct, के लिए std::dec और std::hex प्रदान करता है के अलावा अन्य ठिकानों के लिए ostream कॉन्फ़िगर करने के लिए पता नहीं कैसे है: तो मैं प्रदर्शन करने के लिए सक्षम होना चाहिए लोकप्रिय आधार, लेकिन मुझे नहीं लगता कि कम बार उपयोग किए जाने वाले अड्डों के लिए क्या उपयोग करना है। और C++ Reference on ios_base जैसे पृष्ठ चर्चा नहीं करते हैं कि क्या उपयोग करना है।

मैं 8, 10 और 16 के अलावा बेस के साथ ओस्ट्रीम का उपयोग कैसे करूं?

+1

नहीं, अन्य अड्डों के लिए कोई समर्थन नहीं है। आपको इसे एक स्ट्रिंग और आउटपुट में कनवर्ट करना होगा। –

+4

सुनिश्चित नहीं है कि यह मानक माध्यमों का उपयोग कर संभव है। Http://en.cppreference.com/w/cpp/io/manip/setbase पर देख रहे हैं - "शून्य के अलावा 8, 10, या 16 रीसेट बेसफील्ड के आधार पर मान, जो दशमलव आउटपुट और उपसर्ग-निर्भर इनपुट से मेल खाते हैं। " – jready

+0

जब तक मुझे कुछ पता नहीं है, हाल ही में जोड़ा गया है, iostreams में 8, 10, और 16 के अलावा अड्डों के लिए कोई समर्थन नहीं है। आपको संख्याओं को तारों के रूप में पढ़ना होगा और उन्हें हाथ से डीकोड करना होगा। – zwol

उत्तर

0

दिशा के पीछे से मेरा जवाब बदलना पीछे की ओर था। itoa देखें। दस्तावेज कहता है कि यह एक गैर मानक समारोह है। चूंकि यह एक मानक मानक है, stackoverflow में पृष्ठ में कुछ कार्यान्वयन हैं।

+2

दुर्भाग्य से ओपी दूसरे तरीके से पूछता है। उन्हें अपना स्वयं का आईओ-मैनिपुलेटर प्रदान करना होगा। निस्संदेह इस कार्यान्वयन को एक स्ट्रिंग प्रस्तुति मिलनी चाहिए जो पुष्टि करता है कि 'stoi()' एक संख्या में फिर से परिवर्तित करने में सक्षम है। –

+1

'सेटबेस' अपेक्षित के रूप में काम नहीं करता है। उद्धृत पृष्ठ से: * "... 8, 10, या 16 के अलावा आधार के मान शून्य से शून्य फ़ील्ड, जो दशमलव आउटपुट और उपसर्ग-निर्भर इनपुट के अनुरूप है।" * – jww

+0

@ πάνταῥεῖ। मेरा जवाब तय किया। सर उठाने के लिए धन्यवाद। –

4

मुझे नहीं लगता कि यह मानक माध्यमों का उपयोग कर संभव है। 8 के अलावा अन्य आधार, 10, या 16 रीसेट शून्य करने के लिए basefield, जो उत्पादन और उपसर्ग पर निर्भर इनपुट दशमलव में मेल खाती है की std::setbase

मूल्यों को देखते हुए।

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