D4L4!L4M4
Captain
- Registriert
- Jan. 2006
- Beiträge
- 3.615
Guten Morgen
da ich auch nach langer Internet-Recherche nichts gefunden habe frage ich mal hier und hoffe ihr könnt mir helfen.
Sprache ist C (nicht C++!). Und zwar möchte ich eine beliebig lange Textdatei einlesen können, sprich die Länge der Datei kann variieren.
Es handelt sich um eine Datei in der ein String mit beliebiger Länge stehen kann, ohne Zeilenumbrüche ("\n"). Der gesamte String steht also in einer Zeile.
Im Moment läuft das in meinem Programm noch so ab:
Nun besteht hier natürlich dass Problem dass ich die Länge des Strings auf 200 Zeichen begrenzt hab. Das char-Array hat nur 200 Felder und von der Datei werden auch nur 200 Zeichen eingelesen.
Ich würde es jetzt gerne mit dynamischer Speicherverwaltung (malloc, realloc) so handhaben, dass das Programm selbst herausfindet wie lang der String in der Datei ist und dementsprechend genügend Speicher für das char-Array bereitstellt.
Leider finde ich im Internet (z.b. Open Galileo Books - C von A bis Z) nur Anleitungen dafür wie man das handhabt wenn die Zeichen von Hand über die Konsole eingegeben werden. In meinem Fall habe ich ja aber immer eine *.txt-Datei aus der gelesen werden soll.
Ich bin dankbar für jedwede Hilfe
Schönen Sonntag wünsch ich allerseits,
MfG Tim
da ich auch nach langer Internet-Recherche nichts gefunden habe frage ich mal hier und hoffe ihr könnt mir helfen.
Sprache ist C (nicht C++!). Und zwar möchte ich eine beliebig lange Textdatei einlesen können, sprich die Länge der Datei kann variieren.
Es handelt sich um eine Datei in der ein String mit beliebiger Länge stehen kann, ohne Zeilenumbrüche ("\n"). Der gesamte String steht also in einer Zeile.
Im Moment läuft das in meinem Programm noch so ab:
Code:
char text [[B]200[/B]];
FILE *datei;
datei = fopen ("text.txt", "r");
if (datei != NULL)
{
fgets(text, [B]200[/B], datei);
/* String muss mit Nullbyte abgeschlossen sein */
n1[strlen(text)] = '\0';
fclose (Datei);
}
Nun besteht hier natürlich dass Problem dass ich die Länge des Strings auf 200 Zeichen begrenzt hab. Das char-Array hat nur 200 Felder und von der Datei werden auch nur 200 Zeichen eingelesen.
Ich würde es jetzt gerne mit dynamischer Speicherverwaltung (malloc, realloc) so handhaben, dass das Programm selbst herausfindet wie lang der String in der Datei ist und dementsprechend genügend Speicher für das char-Array bereitstellt.
Leider finde ich im Internet (z.b. Open Galileo Books - C von A bis Z) nur Anleitungen dafür wie man das handhabt wenn die Zeichen von Hand über die Konsole eingegeben werden. In meinem Fall habe ich ja aber immer eine *.txt-Datei aus der gelesen werden soll.
Ich bin dankbar für jedwede Hilfe
Schönen Sonntag wünsch ich allerseits,
MfG Tim