Errore di compilazione C ++: ha un inizializzatore ma un tipo incompleto


104

Sto codificando in Eclipse e ho qualcosa di simile al seguente:

#include <ftream>
#include <iostream>

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

Tuttavia, quando provo a compilare, ottengo il seguente errore: variable 'std::istringstream iss' has initializer but incomplete type

Qualche pensiero veloce? Ho cercato su Google e sembra che la maggior parte delle persone con questo problema semplicemente non abbia incluso i file di intestazione corretti che credo di stare facendo correttamente.


11
std::istringstring? E 'in <sstream>ogni caso di intestazione, però.
chris

whoops, ho digitato la domanda sbagliata, l'ho codificata nel modo in cui hai scritto quindi il problema è sempre lo stesso
Aneem

sì, l'aggiunta di <sstream> ha permesso di costruire correttamente, grazie!
Aneem

2
Difficile capire quale sia la giustificazione per la riapertura. Salterò e lascerò che altri prendano la decisione, ma sembra essere un semplice errore.
Aaron Hall

Risposte:


234

Hai bisogno di questo include:

#include <sstream>

13
Questo è praticamente un bug nella libreria standard; la classe è stata trovata ma non il metodo che lascia il programmatore all'oscuro di quale file includere a meno che non conosca a memoria i nomi dei file della libreria standard, il che è un'aspettativa ridicola. Spero che qualcuno lo segnali come un bug.
j riv
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.