000
05.03.2008, 12:52 Uhr
derkaiser182
|
hallo!
bin neu hier und habe noch nirgendwo etwas passendes zu meinem problem gefunden.
und zwar folgendes. die aufgabe besteht darin, datensätze die zeilenweise in einer datei gespeichert sind und jeweils aus 4 daten bestehen die durch "geeignete Trennzeichen" voneinander separiert sind in felder einzulesen. die ersten, zweiten... daten in jeweils ein feld. die in den feldern gespeicherten daten sollen vom typ double sein.
davor gilt es zu überprüfen, wieviele datensätze die datei enthält.
ich bin davon ausgegangen, dass die daten durch ';' voneinander getrennt sind und habe mir auch mal eine "dummy"-datei geschrieben mit der ich mein programm teste.
hier mal meine bisherigen ergebnisse:
C++: |
#include <stdio.h> #include <string.h>
int main() { double s, *t, *x, *y, *z; int n=0, i=0, k=0; char *zeile; FILE *datei = fopen("flugdaten.txt", "r"); do { s = fgetc (datei); if (s == ';') /*Annahme: die Werte sind durch ; getrennt*/ n +=1; } while (s != EOF); printf ("Die Datei enthaelt %d Datensaetze!", n/4); fclose (datei); t = (double*)malloc(n*sizeof(double)); x = (double*)malloc(n*sizeof(double)); y = (double*)malloc(n*sizeof(double)); z = (double*)malloc(n*sizeof(double)); zeile = (char*)malloc(n*sizeof(char)); fopen("flugdaten.txt", "r"); for(i=0; i<=n; i++) fgets(zeile, 256, datei); sscanf (zeile, "%lf%lf%lf%lf", &t[i], &x[i], &y[i], &z[i]); for (k=0; k<n; k++) printf("\n%lf %lf %lf %lf", t[k], x[k], y[k], z[k]); fclose (datei); free(t); free(x); free(y); free(z); }
|
hier auch nochmal der inhalt meiner dummy-datei:
1,0;4245,95;2342;2424; 2,0;23423,243;23423,234;23423,23424; 3,0;2423,234;2445,53;35345;667; 4,0;435,34;3453,345;3656,34;
grüße! christian Dieser Post wurde am 05.03.2008 um 14:04 Uhr von Windalf editiert. |