Lỗi biên dịch C ++: có bộ khởi tạo nhưng kiểu không hoàn chỉnh


104

Tôi đang viết mã trong Eclipse và có những thứ như sau:

#include <ftream>
#include <iostream>

void read_file(){
    char buffer[1025];
    std::istringstream iss(buffer);
}

Tuy nhiên, khi tôi cố gắng tạo, tôi gặp lỗi sau: variable 'std::istringstream iss' has initializer but incomplete type

Bất kỳ suy nghĩ nhanh chóng? Tôi đã tìm kiếm xung quanh và có vẻ như hầu hết mọi người gặp sự cố này chỉ đơn giản là không bao gồm các tệp tiêu đề phù hợp mà tôi tin rằng tôi đang làm đúng.


11
std::istringstring? Tuy nhiên, nó vẫn nằm trong <sstream>tiêu đề.
chris

Rất tiếc, tôi đã gõ sai câu hỏi, tôi có nó mã hóa theo cách bạn đã viết như vậy vấn đề vẫn là như nhau
Aneem

vâng, thêm <sstream> đã làm cho nó được xây dựng chính xác, cảm ơn!
Aneem

2
Khó có thể hiểu được lời biện minh cho việc mở cửa trở lại là gì. Tôi sẽ bỏ qua và để người khác đưa ra quyết định, nhưng đó có vẻ là một lỗi đơn giản.
Aaron Hall

Câu trả lời:


234

Bạn cần điều này bao gồm:

#include <sstream>

13
Đây thực tế là một lỗi trên thư viện chuẩn; lớp được tìm thấy nhưng không phải là phương pháp khiến lập trình viên không biết nên đưa vào tệp nào trừ khi anh ta biết thuộc lòng tên tệp thư viện chuẩn, đó là một kỳ vọng vô lý. Tôi hy vọng ai đó báo cáo nó như một lỗi.
j riv
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.