C Ziffern aus Datei lesen und in int speichern

Crazy Driver

Ensign
Registriert
Jan. 2011
Beiträge
182
Hallo Leute,

Ich möchte gerne aus einer .txt Datei verschieden Ziffern getrennt durch ein Leerzeichen
lesen und einzeln in einen int Array speichern.

Ich hatte anfangs vor das mit strtok() lösen aber ich weiß nicht wie ich die Zeichen aus der
Datei abspeichern kann. :(
 
Sollte mit scanf("%i", beliebigesArray+i); gehen, wobei beliebigesArray ein beliebiges Array ist und +i sagt an welcher Position es gespeichert werden soll.

Edit: @powerfx, stimmt, die Datei will fscanf auch haben - etwas durcheinandergewürfelt.
 
Ich würde mal fscanf vorschlagen.

Code:
fscanf(file, "%d", &var);
 
IfindU schrieb:
Sollte mit scanf("%i", beliebigesArray+i); gehen, wobei beliebigesArray ein beliebiges Array ist und +i sagt an welcher Position es gespeichert werden soll.

Tut mir leid, aber ich hab keine Ahnung was du damit meinst. :(
Könntest du mir deine Idee mal bitte erklären?
 
Dann scheinen dir Grundlagen zu fehlen. Ich würde zur passenden Literatur raten. An dieser Stelle ist es sonst schwer gute Erklärungen zu finden.

Code:
/* Datei öffnen */
FILE *file = fopen ("datei_mit_zahlen.txt", "r");

if (file != NULL)
{
    /* Array initialisieren (hier 255 Felder) */
    int zahlen[255];
    int i = 0;

    /* Solange Datei nicht zu Ende ist,... */
    while (fgetc(file) != EOF)

        /* ...nächste Dezimalzahl lesen, in zahlen[i] speichern und i inkrementieren */
        fscanf (file, "%d", zahlen[i++]);

    fclose(datei);
}

Ist nicht gerade sauber, aber ansonsten sollte es weiterhelfen.
 
Zuletzt bearbeitet:
powerfx schrieb:
Dann scheinen dir Grundlagen zu fehlen. Ich würde zur passenden Literatur raten. An dieser Stelle ist es sonst schwer gute Erklärungen zu finden.

Code:
/* Datei öffnen */
FILE *file = fopen ("datei_mit_zahlen.txt", "r");

if (file != NULL)
{
    /* Array initialisieren (hier 255 Felder) */
    int zahlen[255];
    int i;
Oh doch, so weit war ich auch schon! ;)
powerfx schrieb:
Code:
    while (fgetc(datei) != EOF)

        /* ...nächste Dezimalzahl lesen, in zahlen[i] speichern und i inkrementieren */
        fscanf (file, "%d", zahlen[i++]);

    fclose(datei);
}
Nur das ist neu und hat mir dank des guten Beispiels weitergeholfen! :)
 
Zurück
Oben