Qt c ++ एग्रीगेट 'std :: stringstream ss' में अपूर्ण प्रकार है और इसे परिभाषित नहीं किया जा सकता है


97

मेरे कार्यक्रम में यह फ़ंक्शन है जो पूर्णांक को स्ट्रिंग्स में परिवर्तित करता है:

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

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

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

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


48
#include <sstream>
मनेगु

1
एक तरफ के रूप में, QString में एक संख्या से एक स्ट्रिंग के निर्माण के लिए एक स्थिर कार्य है। यह QString :: नंबर है
cgmb

जवाबों:


153

आपके पास संभवतः कक्षा की एक आगे की घोषणा है, लेकिन इसमें हेडर शामिल नहीं है:

#include <sstream>

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

9

जैसे यह वहाँ लिखा है, आप टाइप करना भूल जाते हैं #include <sstream>

#include <sstream>
using namespace std;

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

तुम भी कुछ अन्य तरीकों का उपयोग करने के intलिए परिवर्तित कर सकते हैं string, जैसे

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

यह जांचें !

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.