float- Zahlen auslesen

Gast #258714
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);
Angehängte Dateien:
#258715
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.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.