warum geht das nicht????



  • hi!

    Ich will eine textdatei auslesen und alles in einen char array lesen. ich will dieses array aber genauso groß machen wie die datei groß ist ->klar!
    ich bekomme aber immer einen Konvertierungsfehler: "expected constant expression"

    1.)Wie kann man das noch machen?
    2.) Kann ich vielleicht ein textfile zeilenweise einlesen oder geht das nur auf char basis??

    danke schonmal
    l00P

    CFile file;
    	file.Open("C:\\Demo.txt", CFile::modeCreate | CFile::modeNoTruncate | CFile::modeRead);
    	long a = file.GetLength();
    	char allMembers[a];
    
    	file.Read(allMembers,sizeof(allMembers));
    	file.Close();
    


  • char allMembers[a]; kann nicht gehen, da der Compiler schon wissen will wieviel Speicher er reservieren muß.
    Alternativ kannst Du CArray<char,char> oder CString verwenden.

    CStdioFile hat eine Fkt. ReadString, die jeweils eine Zeile aus einer Datei einliest.



  • aber wenn ich eine variable einsetze "a" weiß der doch wiviel speicher er reservieren soll oder?



  • Die Anzahl der Elemente des arrays muss schon feststehen, wenn du deinen Quelltext schreibst - nicht erst zur Laufzeit.

    Wenn du das erst zur Laufzeit wissen kannst, musst du den Speicher dynamisch anfordern oder, wie schon geschrieben, CArray nehmen.


Anmelden zum Antworten