Moin zusammen,
ich schreibe gerade an einem kleinen Programm, dass eine Datei einließt, bis das Ende der Datei erreicht ist, den Stream dann zurücksetzt und ihn zurückgibt:
Das ganze wird jedoch quittiert mit:
30|Fehler: Variable »std::ifstream some_stream« hat Initialisierung, aber unvollständigen Typ|
Ich frage mich nun, was an dieser Initialisierung falsch sein soll, schließlich wandle ich einen String in einen String im C-Stil um, was meines Wissens passen sollte. Ohne Umwandlung ist das Resultat das selbe, auch ein String-Literal ändert nichts.
Abschließend möchte ich noch bemerken: Ja, es gibt komfortablere Lösungen des Problems, aber das Programm dient der Übung mit Status und Streams. Daher bitte keine alternativen Lösungsvorschläge machen.
Danke.
Gruß,
badday
ich schreibe gerade an einem kleinen Programm, dass eine Datei einließt, bis das Ende der Datei erreicht ist, den Stream dann zurücksetzt und ihn zurückgibt:
Code:
#include <iostream>
using namespace std;
istream& our_func(istream& our_stream)
{
while(our_stream.eof()==false)
{
cout<<our_stream<<endl;
}
our_stream.clear();
return our_stream;
}
int main()
{
string file;
cout<<"Well, tell me the file"<<endl;
cin>>file;
ifstream some_stream(file.c_str());
our_func(some_stream);
some_stream.close();
}
Das ganze wird jedoch quittiert mit:
30|Fehler: Variable »std::ifstream some_stream« hat Initialisierung, aber unvollständigen Typ|
Ich frage mich nun, was an dieser Initialisierung falsch sein soll, schließlich wandle ich einen String in einen String im C-Stil um, was meines Wissens passen sollte. Ohne Umwandlung ist das Resultat das selbe, auch ein String-Literal ändert nichts.
Abschließend möchte ich noch bemerken: Ja, es gibt komfortablere Lösungen des Problems, aber das Programm dient der Übung mit Status und Streams. Daher bitte keine alternativen Lösungsvorschläge machen.
Danke.
Gruß,
badday