CString -> char* Problem mit getline()

tantor

Grünschnabel
Hallo,

ich möchte eine Datei zeilenweise auslesen. Das mache ich über die Methode getline().
Wie folgt mein Aufruf :

Code:
		CString Zeile="";
		EingabeDatei.getline(Zeile,'\n');

Doch da meckert mir der Compiler dann rum :

error C2664: 'istream &istream::getline(char *,int,char)' : cannot convert parameter 1 from 'CString' to 'char *'

Wie kann ich das Ganze verfeinern ?

Vielen Dank schonmal
 
Da CString leider keine Methode hat um von einem istream eine Zeile zu lesen, musst du dir hald eine Buffer anlegen:

Code:
CString Zeile="";
char buf[1024]; // 1024
buf[0]=0;
EingabeDatei.getline(buf,'\n');
Zeile=buf;
 
...wobei man sich das buf[0] = 0; sparen kann und das Array lieber als char* deklariert und mit new an die Größe der einzulesenen Datei anpasst...
 
Eine andere Möglichkeit:

...
CStdioFile file;

try
{
file.Open("C:\...", CFile::modeRead);
CString strLine;

// Datei zeilenweise auslesen
while (file.ReadString(strLine) > 0)
{
...
}
}
catch(CFileException *e)
{
...
}
 

Neue Beiträge

Zurück