Aus einer Datei in ein 2Dimensionales Array einlesen



  • Hall ich würd gerne ein Programm schreiben das mir Parameter(23;23)
    aus einer Textdatei in ein 2Dimensionales Array ausließt.
    Zu beachten ist das Semikolon!!
    Gibt es da nicht irgend ne funktion in C dir mir rechts vom semi und links vom
    semi die Ziffern ausließt???
    bekomm das ganze nur 1 Dimensional hin , vielleicht hatt einer von
    euch eine ähnliche Lösung, nur unter Verwendung eines 2 Dimensionales Arrays.
    (z.B array[500][2])

    #include <stdio.h>
    #include <string.h>

    int main()
    {

    FILE *lesen;
    lesen = fopen("C:\\bllaa","r");

    char datei[500] = " ";
    int c,i;

    while((c = getc(lesen) != EOF)
    {
    datei[i] = c;
    i++
    }

    printf("%s\n",datei);

    return 0;
    }



  • kannst du mal bitte genauer spezifizieren? Wie stehen deine Daten in der Eingabedatei? Und wie willst du sie verteilen?

    (ein Ansatz: Zeilenweise einlesen und dann die Zeile per strtok() zerlegen und jeden Teil per atoi() in eine Zahl umwandeln)



  • meine Daten in der Datei: 23;23
    ..........................................23;12

    u.s.w. .....

    also 500 zeilen und 2 spalten.

    Das ist alle was ich auslesen möchte!!!!
    Du musst also nichts umwandeln.Nur die Zahlen in ein 2Dimensionales
    Array lesen.



  • mexi schrieb:

    Du musst also nichts umwandeln.

    Ich muß gar nichts - wenn jemand "muß", dann bist du das 😉

    OK, nochmal langsam: Du liest per fgets() eine komplette Zeile deiner Datei um, dann suchst du per strchr() das Semikolon in dieser Zeile und kannst sie an der gefundenen Stelle auftrennen. Und da ich nicht davon ausgehe, daß du die Zahlen als Ziffernfolge speichern willst, kannst du beide Teile noch durch atoi() durchjagen, um sie in einen int-Wert (ganze Zahl) umzuwandeln.
    (zusammenbauen zu einem Programm darfst du diese Beschreibung jetzt selber)



  • Na sorry wegen dem muss 🙂

    Da sag ich voerst mal vielen Dank.

    Werd es jetzt mal versuchen!!!

    P.S Falls ich das nich so hinbekomme, könntest mir vielleicht nen
    Lösungsvorschlag geben. Währe echt net von dir.



  • Weißt du was ich poste dir jetzt einfach mal die Aufgabenstellung da
    ich nich besonders erklähren kann.

    Schreiben Sie ein C-Programm, das diskrete Ganzzahl-Meßwertepaare ( x- und y-
    Wert) von einer Textdatei in ein zweidimensionales Array im Hauptspeicher einließt.
    Das Array ist auf max 500 Wertepaare begrenzt.Jedes Meßwertpaar in der Datei ist durch ein Semikolon getrennt und steht in einer Zeile, z.B. 24;23. Der Dateiname soll als Kommandozeilenparameter übergeben werde. Geben Sie ferner jeweils das Meßwertpaar mit dem größten x- bzw. y-Wert auf dem Bildschirm aus.

    Weiß einfach nich weiter sorry!!
    Programmier technisch noch ziehmlich am Anfang.



  • Was hast du denn bisher schon erreicht?

    Wie du die Datei einlesen und interpretieren mußt, habe ich oben schon erklärt, also kurz zu den übrigen Punkten:

    • die Kommandozeilen-Parameter erhält das Programm als argc (Anzahl) und argv (Array von Strings)
    • Dateien öffnen kannst du mit fopen()
    • zum Suchen des größten Wertes kannst du das gesamte Array in einer Schleife durchlaufen und das aktuelle Maximum mitschreiben

Anmelden zum Antworten