Dynamisches Cstring Array mit new oder malloc() oder wie jetz???

05/07/2010 21:09 syslen#1
Gelöst

Hallo,

Erstens ich habe schon gegoogelt (Google is mein Freund :D), aber dies hat mir nicht wirklich weitergeholfen |:

Also ich möchte über die funktion getline() von einer Datei die Strings in einen dyn array schreiben. Ich habe dazu erstmal einen Zeilencounter implementiert der auch wunderbar funktioniert. Mit diesen counter will ich ja das array dynamisch allozieren doch ich hab da iwie Probleme.

ein kleines bsp
PHP Code:
int counter;
while(
file.eof() == 0) {
counter++;
getline(file,); // ka wo das ganze hinn soll vllt getline(file,buff[2]); für Zeile 3
}
// ka wie ich das dann allozieren sollte

// so und dann sollte er einfach auf die string der zeile zugreifen sollen
cout << buff[2] << endler gibt die 3. Zeile aus 
Ich hoffe ihr habt mein Problem verstanden und könnt mir helfen.
05/07/2010 21:36 Bot_interesierter#2
Welche getline Funktion verwendest du denn? Die aus <string> oder aus <iostream>?
Die aus iostream ist eine Member Funktion von istream und nimmt als erstes Argument einen char* und als zweites die Maximale Länge die gelesen wird, die aus string würde als erstes Argument eine Referenz auf ein istream object nehmen und als zweites Argument dann eine Referenz auf ein string object, im zweiten Fall kümmert sich die string Klasse darum das Speicher Alloziert wird, im ersten Fall müsstest du mit malloc bzw new Speicher reservieren und diesen deinem char* zuweisen, dann musst du natürlich die Größe des Speichers als streamsize Parameter übergeben.

Edit:
Hier mal die beste Englischsprachige C++ Referenz zu diesen Funktionen:
[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
05/07/2010 22:07 syslen#3
Vielen lieben Dank für deinen Post. Ich wünsche mir nur noch das du mir ein Mini Beispiel postest

THX
Info: verwende ifstreamman
€ sry überschritf is falsch hab als ich den Thread erstellt hab vergessen das es ein object der Klasse string war und kein cstring
05/07/2010 22:55 wurstbrot123#4
Code:
ifstream file;
file.open("example.txt", ifstream::binary);
if(file.good())
{
      int filesize = 0;
      file.seekg (0, ios::end);
      filesize = file.tellg();
      file.seekg (0, ios::beg);
      char *buffer = new char[filesize+1];
      file.read(buffer, filesize);
      file.close();
      // daten verwalten
      delete []buffer;
}
05/07/2010 23:26 syslen#5
So, ich hab das problem jetz auf eine anderen Weise gelöst.

Nochmal Vielen Dank an Alle für ihre Mühe.