Forum: PC-Programmierung Frage zu "C" Array Aufteilung


von Jim S. (jimstreet)


Lesenswert?

Guten Tag,

ich würde gerne ein Array in mehrere kleine Array aufteilen. Ich lese 
das ganze jedoch aus einem Text-Dokument ein. Weiß jemand wie das genau 
geht?
Im Textdokument stehen 4 Zeilen:

0x99A
9
0x99, 0x99, 0x99, 0x99, 0x99, 0x99, 0x9C, 0x99
99

Und ich möchte erreichen, dass jede Zeile in einem eigenen Array 
gespeichert wird. Ist das möglich?
Momentan wird alles in einem Array, dem buffer, gespeichert.

int main()
{
    FILE *fp = fopen("/local/mytext.txt","r");
    }
    char buffer[128];
    while(fgets(buffer, 128, fp)) {
        pc.printf("%s", buffer);
}

Vielen Dank für die Hilfe.

von Karl H. (kbuchegg)


Lesenswert?

Jim Street schrieb:

> Und ich möchte erreichen, dass jede Zeile in einem eigenen Array
> gespeichert wird. Ist das möglich?

Natürlich ist das möglich. Warum auch nicht.

> Momentan wird alles in einem Array, dem buffer, gespeichert.

Momentan wird bei dir immer nur die zuletzt gelesene Zeile der Textdatei 
gespeichert. Großer Unterschied!

>     while(fgets(buffer, 128, fp)) {

fgets liefert genau die nächste Zeile aus dem File.
Was du dann mit der Zeile machst, ist deine Sache. Du kannst sie, so wie 
hier ausgeben und dann verwerfen, oder aber du kannst dir natürlich 
viele Arrays anlegen und bei jedem fgets ein anderes zum Lesen benutzen.

Wenn du weisst, dass es sich immer um 4 Zeilen handelt, dann kannst du 
im einfachsten Fall
1
char Zeile1[256];
2
char Zeile2[256];
3
char Zeile3[256];
4
char Zeile4[256];
5
6
....
7
8
    fgets( Zeile1, sizeof(Zeile1), fp );
9
    fgets( Zeile2, sizeof(Zeile2), fp );
10
    fgets( Zeile3, sizeof(Zeile3), fp );
11
    fgets( Zeile4, sizeof(Zeile4), fp );
12
...
nicht schön, und auch nicht elegant, aber was solls.

du kannst auch ein 2 dimensionales Array benutzen oder du kannst 
dynamisch Speicher für jede Zeile allokieren, oder ...... was du machst 
ist nur durch deine Fähigkeiten begrenzt.
fgets liest die jeweils nächste Zeile in den bereit gestellten Buffer. 
Alles weitere, was du als buffer benutzt oder ob und wie du den 
buffer-Inhalt weiter bearbeitest, ist dein Bier.

: Bearbeitet durch User
von Jim S. (jimstreet)


Lesenswert?

Oh man danke, dass ist eine super Idee !

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.