Qt c ++ tổng hợp 'std :: stringstream ss' có kiểu không hoàn chỉnh và không thể xác định được


96

Tôi có hàm này trong chương trình của mình để chuyển đổi số nguyên thành chuỗi:

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

Nhưng khi tôi chạy nó, tôi gặp lỗi:

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

Tôi không thực sự chắc chắn điều đó có nghĩa là gì. Nhưng nếu bạn biết làm thế nào để sửa chữa nó hoặc cần thêm bất kỳ mã, xin vui lòng chỉ cần bình luận. Cảm ơn.


47
#include <sstream>
Managu

1
Ngoài ra, QString có một hàm tĩnh để xây dựng một chuỗi từ một số. Đó là QString :: số .
cgmb

Câu trả lời:


153

Bạn có thể có một khai báo chuyển tiếp của lớp, nhưng chưa bao gồm tiêu đề:

#include <sstream>

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

9

Giống như nó được viết ở đó, bạn quên nhập #include <sstream>

#include <sstream>
using namespace std;

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

Bạn cũng có thể sử dụng một số cách khác để chuyển đổi intsang string, như

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

kiểm tra cái này!

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.