2012-08-01 17 views
67

मैं अपने कार्यक्रम में इस समारोह है कि तार को पूर्णांकों में कनवर्ट करता है:क्यूटी C++ एकत्र 'std :: stringstream एस एस' अधूरा प्रकार है और परिभाषित नहीं किया जा सकता

QString Stats_Manager::convertInt(int num) 
    { 
     stringstream ss; 
     ss << num; 
     return ss.str(); 
    } 

लेकिन जब मैं त्रुटि मिलती है कभी मैं इस चलाने :

aggregate 'std::stringstream ss' has incomplete type and cannot be defined 

मुझे सच में यकीन नहीं है कि इसका क्या अर्थ है। लेकिन अगर अब आप इसे कैसे ठीक करें या किसी और कोड की आवश्यकता है तो कृपया टिप्पणी करें। धन्यवाद।

+37

'# शामिल ' – Managu

+1

एक तरफ के रूप में, क्यूस्ट्रिंग के पास एक संख्या से स्ट्रिंग बनाने के लिए एक स्थिर कार्य है। यह [क्यूस्ट्रिंग :: संख्या] है (http://doc.qt.nokia.com/4.8- स्नैपशॉट /qstring.html#number)। – cgmb

उत्तर

106

आप शायद वर्ग के एक आगे घोषणा है, लेकिन शीर्ष लेख शामिल नहीं किया है:

#include <sstream> 

//... 
QString Stats_Manager::convertInt(int num) 
{ 
    std::stringstream ss; // <-- also note namespace qualification 
    ss << num; 
    return ss.str(); 
} 
3

की तरह वह वहां लिखा है, यदि आप लिखना #include <sstream>

#include <sstream> 
using namespace std; 

QString Stats_Manager::convertInt(int num) 
{ 
    stringstream ss; 
    ss << num; 
    return ss.str(); 
} 

आप भी कर सकते हैं भूल जाते हैं कुछ अन्य तरीकों का उपयोग करने के लिए stringint कन्वर्ट करने के लिए,

char numstr[21]; // enough to hold all numbers up to 64-bits 
sprintf(numstr, "%d", age); 
result = name + numstr; 
की तरह

चेक this!

+3

'std का उपयोग कर;' मान्य नहीं है। क्या आपने संकलन करने की कोशिश की है? –

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