ข้อผิดพลาดในการคอมไพล์ C ++: มีตัวเริ่มต้น แต่ประเภทไม่สมบูรณ์


104

ฉันกำลังเขียนโค้ดใน Eclipse และมีสิ่งต่อไปนี้:

#include <ftream>
#include <iostream>

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

อย่างไรก็ตามเมื่อฉันพยายามสร้างฉันได้รับข้อผิดพลาดต่อไปนี้: variable 'std::istringstream iss' has initializer but incomplete type

ความคิดด่วน ๆ ? ฉันได้ googled และดูเหมือนว่าคนส่วนใหญ่ที่มีปัญหานี้ไม่ได้รวมไฟล์ส่วนหัวที่ถูกต้องซึ่งฉันเชื่อว่าฉันทำถูกต้อง


11
std::istringstringเหรอ? อย่างไรก็ตามมันอยู่ใน<sstream>ส่วนหัวอยู่ดี
chris

อ๊ะฉันพิมพ์คำถามผิดฉันได้เข้ารหัสตามที่คุณเขียนเพื่อให้ปัญหายังคงเหมือนเดิม
Aneem

ใช่การเพิ่ม <sstream> ทำให้มันสร้างได้อย่างถูกต้องขอบคุณ!
Aneem

2
ยากที่จะดูว่าเหตุผลสำหรับการเปิดใหม่คืออะไร ฉันจะข้ามไปและปล่อยให้คนอื่นตัดสินใจ แต่ดูเหมือนจะเป็นข้อผิดพลาดง่ายๆ
Aaron Hall

คำตอบ:


235

คุณต้องการสิ่งนี้ ได้แก่ :

#include <sstream>

13
นี่เป็นข้อผิดพลาดในไลบรารีมาตรฐาน พบคลาสนี้ แต่ไม่ใช่วิธีที่ทำให้โปรแกรมเมอร์อยู่ในที่มืดเกี่ยวกับไฟล์ที่จะรวมเว้นแต่เขาจะรู้ชื่อไฟล์ไลบรารีมาตรฐานด้วยใจจริงซึ่งเป็นความคาดหวังที่ไร้สาระ ฉันหวังว่าจะมีคนรายงานว่าเป็นข้อบกพร่อง
j riv
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.