L'agrégat Qt C ++ 'std :: stringstream ss' a un type incomplet et ne peut pas être défini


97

J'ai cette fonction dans mon programme qui convertit les entiers en chaînes:

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

Mais chaque fois que je lance cela, j'obtiens l'erreur:

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

Je ne sais pas vraiment ce que cela signifie. Mais si vous savez comment le réparer ou si vous avez besoin de plus de code, veuillez simplement commenter. Merci.


48
#include <sstream>
Managu

1
En passant, QString a une fonction statique pour construire une chaîne à partir d'un nombre. C'est QString :: number .
cgmb

Réponses:


153

Vous avez probablement une déclaration avant de la classe, mais vous n'avez pas inclus l'en-tête:

#include <sstream>

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

9

Comme c'est écrit là-haut, tu oublies de taper #include <sstream>

#include <sstream>
using namespace std;

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

Vous pouvez également utiliser d'autres façons de convertir intà string, comme

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

vérifiez ceci!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.