Tabelle aus Datei in ein Array einlesen
-
Hallo,
kann sein, dass das Thema schon öfters vorgekommen ist. Aber ich suche nach etwas speziellem.
Ich habe eine Datei, die zwei Spalten hat. Die zwei Spalten ist durch ein TAB getrennt. Die erste Spalte hat INT- und die zweite Spalte hat DOUBLE-Werte.
Ich würde gerne die erste Spalte in Array1[N] und die zweite Spalte in Array2[N] einlesen.
Wie würdet Ihr das machen?
Ich möchte fscanf() und fgetc() vermeiden. Vor allem fgetc(), weil ich dann die die Zeichenkette trennen muss und mit atoi() und atof() die Zeichen in Zahlen umwandeln muss.
Beste Grüße, snoopy85
-
Eine Schleife bis EOF und darin mit fgets() die Zeile lesen und mit sscanf() die Zeile auswerten.
Das Auswerten kannst du auch mit strtol(), strchr() und strtod() machen.Einen Befehl der dir auf einmal die erste bzw. zweite Spalte einliest, gibt es nicht in C.
-
Warum kein fscanf, richtig verwendet dürfte das für dein Problem das kürzeste Verfahren sein.
int i=0,a[N]; double b[N]; ... while( i<N && 2==fscanf(f,"%d%lf",&a[i],&b[i]) ) ++i; ... printf("Es wurden %d Paare gelesen",i);