Probleme mit eof
-
Zuerst vielen Dank für die vielen Antworten. Blöderweise hab ich die Header <string.h> bereits eingebunden, also an dem liegts nicht. Normalerweise funktioniert das ganze auch, nur mit einer Zeile in meiner Textdatei geht es nicht, da eof nicht erreicht wird.
Ich hab mir den Link noch nicht angeschaut, werd ich aber sofort machen.CodeFinder hat übrigens recht, hier handelt es sich um MFC, das CString hab ich total übersehen, sonst hätte ich mein Problem in das andere Forum gepostet

mfg enne
-
Danke evilissimo für das Beispiel, scheint nur so als bräuchte getline() in MFC 3 Parameter

-
CodeFinder schrieb:
evilissimo schrieb:
Wo ist jetzt das Problem? Der hat nichts selbstdefiniert. Ehrlich verstehe ich grad nicht was die Frage grad soll

Also ich kenn den Datentyp CString...siehe hier:
CString text("");Nur aus den MFC Headern, nicht aber aus den Stdandard C++ Headern.
Kannst mir mal den Header nennen in dem der definiert ist ?
Ja und das ist doch egal, das ist doch hier überhaupt nicht das Problem. Die Frage die der OP hatte war auf Standard C++ bezogen. ( ifstream und eof )
Ob der OP nun MFC verwendet oder nicht tut doch nichts zur Sache.
Dein Problem ist kein MFC Problem
Daher ist das schon das richtige Forum. (Sonst hätte ich das schon verschoben)Nur zu deiner Information string.h ist nicht die Headerdatei die ich meinte. Ich meinte <string> (ohne .h)

BR
Vinzenz
-
enne87 schrieb:
Danke evilissimo für das Beispiel, scheint nur so als bräuchte getline() in MFC 3 Parameter

Also wenn das einen dritten Parameter brauch dann übergib '\n' (Normalerweise sollte der dritte Parameter ein default Parameter sein.)
while(getline(textdatei,line,'\n')){...BR
Vinzenz
-
Ok, ich hab jetzt auch <string> eingebunden und geschrieben:
while(getline(textdatei,line)) { text += line.c_str(); text.Append(_T(" ")); ++lines; }Jetzt bekomm ich nur die Fehlermeldung:
"std::basic_istream<_Elem,_Traits> &std::getline(std::basic_istream<_Elem,_Traits> &,std::basic_string<_Elem,_Traits,_Alloc> &)": template-Argument für "std::basic_istream<_Elem,_Traits> &" konnte nicht von "std::ifstream" hergeleitet werden.
-
Welchen Compiler benutzt du?! Du kannst natürlich versuchen, das Template-Argument explizit anzugeben, aber eigentlich sollte es auch so funktionieren. Ist das die ganze Fehlermeldung?
(explizit sähe das so aus:getline<char, std::char_traits<char>, std::allocator<char> >(file, line), nicht sehr elegant.)
-
Unglaublich , es klappt
Danke vielmals für die Hilfe 
-
Noch eine Frage hätte ich:
Ich hätte gerne die Anzahl der Zeichen von jeder Zeile. Wie ungefähr müsste ich dazu den Code erweitern?
-
line.length();
-
Das ging jetzt einfacher als ich dachte, danke
