Forum: Mikrocontroller und Digitale Elektronik float- Zahlen auslesen


von Eder (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
kann mir jemand sagen, warum ich nur die ersten 19 float- Zahlen beim
untenstehenden Code auslesen kann, obwohl in der angehängten Datei 500
float- Zahlen drinnenstehen.

Vielen Dank für eure hilfe im voraus.

#include <stdio.h>
#include <stdlib.h>
#define gr_array 255


 FILE* dateimesswerte;
 float wert;
 int i = 0;
 int j;
 int k;
 float  array_messwerte[2 * gr_array];
 float x = 0;


int main(void)
{
  dateimesswerte = fopen("F:\\Messwertaufnahme1", "r");
  if (!dateimesswerte)
  {
    printf("Fehler im System");
  }

/* float-Werte in Schleife aus Datei lesen:*/
//printf("vor der while- schleife\n");

    do
     {
      array_messwerte[i] = wert;
      i++;
      printf("%i\n",i);
     }  while (fread(&wert, sizeof(float), 1, dateimesswerte)); //==
sizeof (float));



   printf("Messwertpunkte;PSet; HertzAct");    //hier die
Ueberschrift hinschreiben und mit einem ; trennen

   for(k = 0; k < gr_array; k++)
   {
         printf("\n%d;",k + 1); //erste Spalte
         printf("%.3f;",array_messwerte[k]); //zweite Spalte
         printf("%.3f;",array_messwerte[k + gr_array]); //dritte
Spalte
         //hier koennen noch Spalten hereingeschrieben werden


   }
   /*
   for(i=0; i < (2*gr_array); i++)
   {
        printf("%.3f\n;" ,array_messwerte[i]);

    } */
//printf("nach der while schleife\n");
  fclose(dateimesswerte);

von Karl heinz B. (heinzi)


Lesenswert?

Die liest die Datei mit fread, also binaer.
Dann soltest Du das der I/O Library auch mitteilen und
die Datei im binaeren Modus oeffnen.

    fopen( "....", "rb" );

Damit haelt sich dann der eigentliche Lesecode aus allem raus
und interpretiert zb. NICHT irgendwelche Bytes als EOF Markierung
innerhalb der Datei. Er versucht dann auch nicht, zb. die auf
dem File vorhandene Sequenz CR/LF in nur ein '\n' umzusetzen.

:-)
Ist ein oft gemachter Fehler.

von Eder (Gast)


Lesenswert?

Vielen Dank für deine hilfe,
jetzt gehts!!!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.