Frage zu "C" Array Aufteilung

OP #3824477
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.
#3824493
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.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 12 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.