Ich habe eine TXT-Datei, die eine unbekannte (jedes Mal) Anzahl von Zeilen enthält. In jeder Zeile gibt es 4 Floats, getrennt durch das Leerzeichen.Lesen Sie eine Zeile aus einer TXT-Datei und teilen Sie sie in Gleitkommazahlen.
Mein Problem ist, dass ich keine Ahnung habe, wie man jedes float von den anderen in jeder Zeile trennt und es an der richtigen Stelle der Matrix platziert.
Dies ist der Code, den ich bisher gemacht habe (er geht jede Zeile zum ersten Mal durch, so dass ich die Anzahl der Zeilen kenne, um meine Matrix zu deklarieren, gibt aber nur den ersten der vier Werte zurück):
#include <stdio.h>
FILE *fr;
main() {
float time, xaxis, yaxis, zaxis;
char line[40];
int n = 0;
fr = fopen ("walk-after-excel.txt", "r");
while (fgets (line, 80, fr) != NULL) {
n++;
}
rewind (fr);
printf ("%u", n);
float values[n][4];
int i;
for (i = 0; i < n; i++) {
values[i][0] = 0;
values[i][1] = 0;
values[i][2] = 0;
values[i][3] = 0;
}
while (fgets (line, 80, fr) != NULL) {
sscanf (line, "%f", &time);
printf ("%f\n", time);
}
for (i = 0; i < n; i++) {
printf ("%f, %f, %f, %f \n", values[i][0], values[i][1], values[i][2],
values[i][3]);
}
printf ("%u", n);
fclose (fr);
}
Jede Hilfe wird sehr geschätzt.
Sie müssen zeigen, was Sie bisher selbst gemacht haben? –
Nicht viel, ich lese gerade die .txt-Datei durch und drucke sie aus. Verwenden von Code, der im Internet verfügbar ist. Ich bin wirklich in der Dunkelheit mit dem, was ich tun muss – user2149122
Sie können 'scanf()' verwenden, um jedes Float in eine andere Variable zu lesen. Verwenden Sie 'malloc()' und 'realloc()', um ein Array dynamisch zuzuweisen und es nach Bedarf zu vergrößern. – Barmar