tutorials.de Buch-Aktion 05/2012
Seite 2 von 2 ErsteErste 12
ERLEDIGT
NEIN
ANTWORTEN
20
ZUGRIFFE
1484
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #16
    newbie89 newbie89 ist offline Mitglied Bronze
    Registriert seit
    Aug 2009
    Beiträge
    31
    Hi,
    hoffe der Code ist nach den Vorschriften und gut lesbar problem ist denke ich das er aus der datei nicht den nächsten WERT holt und neu vergleicht denn es kommt an der stelle
    printf("minneu: %f\n",minneu);
    immer das gleiche ergebnis raus. Danke

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    FILE*fp;
     
    float minalt=100,minneu=0, WERT,temp;
     
    fp= fopen ("C:\\ProgramFiles\\cpp\\Katalog1.txt","a+");
       if (fp==NULL)
                   printf("Fehler beim Oeffnen.\n");
           else
                   printf("Datei erfolgreich eingelesen.\n");
                   
           
     while (!feof(fp))      
           { 
                fscanf(fp, "%d", &temp);
                  minneu=(C-temp);
                printf("minneu: %f\n",minneu);
                
                if (minneu<minalt)  
                   {  
                      WERT=temp;
                      minalt=minneu;
                   }   
           }
           
           
                   
                printf("WERT: %f\n",WERT);
     

  2. #17
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Zitat Zitat von newbie89 Beitrag anzeigen
    Von einer anderen Funktion wird meine Vergleichsvariable C errechnet, dass ich sie nun in meiner anderen Funktion verwenden kann muss ich sie doch global machen.
    Du könntest/solltest sie auch als Parameter die Funktion übergeben! Globale Variablen sind immer unschön und gefährlich - vor allem, wenn sie nur C heißen und keinen sprechenden Bezeichner haben!

    Zitat Zitat von newbie89 Beitrag anzeigen
    Fehler ist dass ich für meinen WERT immer 0.00000 erhalte.
    Na, logisch ! ! Vgl. meinen letzten Post ! !
    Du merkst Dir zwar den WERT nur, wenn die Differenz kleiner ist, setzt die neue Differenz aber jedes Mal auf Dein 'minalt' ! ! !

    gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  3. #18
    newbie89 newbie89 ist offline Mitglied Bronze
    Registriert seit
    Aug 2009
    Beiträge
    31
    Hab halt im bezug auf dateien verarbeiten mal sowas von gar keinen plan das ist schon sch***

    Glaube unsere Posts überschneiden sich manchmal hab klammern gesetz müsst doch so jetzt passen hast den post von gerade 12:23 schon gesehen?
    Geändert von newbie89 (19.08.09 um 12:32 Uhr)
     

  4. #19
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Codetags fehlen immer noch !!

    also ....

    float minalt=100,minneu=0, WERT,temp;
    Sind es denn wirklich Fließkommazahlen ? ? ?
    Warum nicht Integer
    Zudem sind WERT und TEMP NICHT initialisiert .....
    Was für ein Datentyp ist denn nun Dein 'C'

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  5. #20
    newbie89 newbie89 ist offline Mitglied Bronze
    Registriert seit
    Aug 2009
    Beiträge
    31
    C ist von datentyp float, deshalb muss der rest auch float sein...

    temp ist auch immer 0.0000 ich denke er durchläuft immernoch nicht die datei...
    das ist mein problem den rest muss im anschluss verfeinern....
    Geändert von newbie89 (19.08.09 um 12:40 Uhr)
     

  6. #21
    Registriert seit
    Dec 2001
    Ort
    Bayern
    Beiträge
    5.800
    Blog-Einträge
    5
    Zitat Zitat von newbie89 Beitrag anzeigen
    Code :
    1
    
                fscanf(fp, "%d", &temp);
    Das kann doch nur schief gehen, wenn du einen Ganzzahlwert in eine Fließkommavariable schreibst. Probier es mal so:
    Code c:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    float targetValue = 20.0f;
     
    FILE* fp = fopen("C:\\ProgramFiles\\cpp\\Katalog1.txt", "r");
    if (fp == NULL)
    {
      printf("Fehler beim Oeffnen.\n");
      return 1;
    }
    printf("Datei erfolgreich geoeffnet.\n");
     
    float minDelta = 100.0f, nearestValue = 0.0f, value;
    while (fscanf(fp, "%f", &value) > 0)
    {
      float delta = fabs(targetValue - value);
      if (delta < minDelta)
      {
        minDelta = delta;
        nearestValue = value;
      }
    }
    fclose(fp);
     
    printf("WERT: %f\n", nearestValue);
    Grüße, Matthias
    newbie89 bedankt sich. 
    „Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
    “For every complex problem, there is an answer that is short, simple and wrong.”
    “Pessimism is safe, but optimism is a lot faster!”


    Aktuelles Coding Quiz: #17 - Wörter kreuz und quer

Ähnliche Themen

  1. .txt Datei einlesen und verarbeiten
    Von Alexander87 im Forum Java
    Antworten: 7
    Letzter Beitrag: 09.11.09, 08:42
  2. Antworten: 0
    Letzter Beitrag: 29.08.08, 06:19
  3. Antworten: 4
    Letzter Beitrag: 14.08.08, 20:05
  4. Antworten: 6
    Letzter Beitrag: 20.05.05, 10:04
  5. Daten aus Datei in listbox einlesen
    Von momoxp im Forum Visual Basic 6.0
    Antworten: 6
    Letzter Beitrag: 04.03.04, 12:45

Stichworte