C+Text Datei nach Maximum durchsuchen



  • Hey ich brauch mal eure Hilfe.

    Ich möchte eine Textdatei mit 502 Werten (dB-Werte) nach dem Maximalwert durchsuchen und den Wert dann in eine Extra txt-Datei schreiben.

    Ich hab bisher folgendes geschrieben:

    #include <stdio.h>                    /*Headerdateien einbinden*/
    #include <conio.h>
    #include <stdlib.h>
    #include <string.h>
                                          /*Hauptprogramm*/
    void main() {
       FILE *in,*out;
       char zeitmax[256];
       char gzeitmax[256],gtagmax[256];
       int anz,status,ganz,i;
       float wert,max;
       in=fopen("Test.txt","r");
                                                     /*Kopf des Programms*/
     printf("Programm von: Bertze\n");
     printf("\nWandlung: IN-File <Test1.txt> ==> OUT-File <Test_1.txt>");
                                                      /*Kontrolle, ob Datei existiert*/
     if (in==NULL)
     {
      printf("\nDie Datei existiert nicht!");
      printf("\n*Press any Key to Exit!*");
      getch();
      exit(0);
     }
      printf("\n*Press any Key to Start!*");
      getch();
      out=fopen("Test_1.txt","w");         //erstellen Ausgabe-Datei
       i=0;
       fscanf(in,"%f",&wert);  //Einlesen der Werte aus der Eingbe-Datei
       max=wert;
      for(i=0;i=501;i++){
    
             if(wert>max) {                  //Spitzenwert
                max=wert;
    
             }
             //Schreiben aller Werte zeilenweise in Ausgabedatei
             fprintf(out,"%6.3f\n",max);
                  }
    
     }
    

    Ich erzeuge auch eine txt-Datei diese ist aber 21mb groß und es steht nicht das drin was ich erwartet habe.

    Die txt Datei zum Auslesen besitzt 2 Spalten. 1. Spalte Frequenzwerte, 2. Spalte dB Werte.

    Zur Vereinfachung habe ich erstmal nur die 2. Spalte in ein neues Dokument kopiert.

    Könnt ihr mir helfen, dass der richtige Max Wert geschrieben wird.

    Wenn das dann klappt, gilt es den Max Wert aus einm TXT dokument zu finden, was 2 Spalten hat. 1. Spalte sind Frequenzen und die zweite dB Werte. Getrennt sind die spalten durch ;.

    LG Bertze



  • Dann durchlaufe deinen Code mal mit dem Debugger, um die Fehler zu finden.

    Ein paar Hinweise:
    - Vergleiche mit == (statt 🙂
    - Einlesen der Werte IN der Schleife (statt nur einmal vorher)
    - Initialisierung des Max-Wertes vor der Schleife auf MIN_INT


Anmelden zum Antworten