Auslesen aus Textdatei in C

teclador-dragon

Grünschnabel
Hi!
Folgendes Szenario:
Ich hab eine textdatei was Zahlen(integerwerte) enthält. Beispiel -> 123 456 789
Wie ihr sehen könnt, sind nach jedem 3zifferblock leerzeichen.
Mein Proggy gibt mir jedoch nur 123 aus und den Rest nicht.
Weiterhin, muss ich in der Lage sein, mit einzelnen zahlen (in meinem Beispiel 123 oder 456 oder 789) zu arbeiten.
Mein Quellcode folgt nach dem Text. Könnt ihr mir bitte weiterhelfen?
Schon mal vielen Dank im Vorraus :)))

Quellcode:
Code:
#include <stdio.h>
#include <conio.h>
#define N 20
 
 
int lesezeile(FILE *fp, float inhalt[N])
{
int i, anzahl = 0;
fscanf(fp, "%i", &anzahl);
for(i=0;i<=anzahl;i++)
fscanf(fp, "%f", &inhalt[i]);
return anzahl;
}
 
 
main()
{
FILE *fp;
float inhalt[N];
int anzahl;
char dn[20];
 
printf("Dateiname: ");
scanf("%s", &dn);
fp = fopen(dn, "r");
 
if (fp!=NULL)
    {
    while (!feof(fp))
        {
        anzahl = lesezeile(fp, inhalt);
        printf("inhalt: %i\n",anzahl);
        } 
    }
    else
    printf("fehler");
getch();
fclose(fp);
return 0;
}
 
Meine Lösung (bei mir funktionierts):
hier werden alle Werte von der Datei in Inhalt gespeicher und du kannst sie weiterverwenden
main() und der Funktionsaufruf bleibt gleich wie es du hast
Code:
int lesezeile(FILE *fp, float *inhalt)
{
int anzahl = 0;
static int i = 0; //statisches i (bei jedem Funktionsaufruf ist der alte Wert vorhanden
 
fscanf(fp, "%i", &anzahl); //speichert in anzahl
inhalt[i] = (float)anzahl; //speichert anzahl in inhalt (float)anzahl ->Typumwandlung
i++;
 
return anzahl; //gibt anzahl zurück
}
 
Zurück