Probleme mit getline()
-
Habe Probleme beim einlesen einer Datei. Genauer gesagt mit der getline Funktion:
int const Sensor::GetRevolutions(std::ifstream & infile) const { string str; infile.getline(infile,str); int revolution; istringstream (str) >> revolution; //convert string to int return revolution; }ich bekomme nämlich ständig den compilererror c2664
Error 1 error C2664: 'std::basic_istream<_Elem,_Traits> &std::basic_istream<_Elem,_Traits>::getline(_Elem *,std::streamsize)' : cannot convert parameter 1 from 'std::ifstream' to 'char *'2 IntelliSense: no instance of overloaded function "std::basic_ifstream<_Elem, _Traits>::getline [with _Elem=char, _Traits=std::char_traits<char>]" matches the argument list
außerdem hat bei uns der tutor bei den rückgabewerten immer const& als anmerkung geschrieben (rückgabewert keine membervariable) getan, wobei es mit dem referenz noch weniger geht :9 was hat das überhaupt für einen sinn?
Woran kann der obige Fehler zustande kommen?
-
Du musst die globale Version von
getlineverwenden:std::getline(infile, str);
-
hmmm es geht
aber wenn das vom ifstream nicht geht, wieso ist es dann überhaupt darin enthalten?und kannst du mir bllt das mit dem cnst & auch erläutern?
mfg
ACnut
-
aber wenn das vom ifstream nicht geht, wieso ist es dann überhaupt darin enthalten?
Das ist offensichtlich für etwas anderes gedacht - nämlich das Einlesen über einen C-String. Genaueres erfährst du hier.
außerdem hat bei uns der tutor bei den rückgabewerten immer const& als anmerkung geschrieben (rückgabewert keine membervariable)
Das kann nicht stimmen, da verstehst du bestimmt etwas falsch. Standardmäßig Referenzen zurückzugeben ist Unsinn.
-
Arcoth schrieb:
Das ist offensichtlich für etwas anderes gedacht - nämlich das Einlesen über einen C-String. Genaueres erfährst du hier.
außerdem hat bei uns der tutor bei den rückgabewerten immer const& als anmerkung geschrieben (rückgabewert keine membervariable)
Das kann nicht stimmen, da verstehst du bestimmt etwas falsch. Standardmäßig Referenzen zurückzugeben ist Unsinn.
hmmm ok danke

oder es ist ein grund, einen punkt wieder zurückzuholen
