Fehler bei Speicher/ Lesefunktion



  • Öhm..also erstmal deine Paramter versteh ich nicht Ö.ö
    zudem es funktioniert immernoch nicht dann,... :*(

    ich find das jetzt voll fies von dem Kompiler 👎



  • Svolf schrieb:

    Öhm..also erstmal deine Paramter versteh ich nicht Ö.ö

    Wenn du noch dazu sagen würdest, WAS du daran nicht verstehst, könnte ich es eventuell erklären.

    zudem es funktioniert immernoch nicht dann,... :*(

    Zeig mal etwas Code 😉



  • Den code möchtest du garnicht sehen, weil du meckern wirst wie shit er struturiert ist 😞

    void speichern(Daten data[],size_t anzahl)

    und das versteh ich nicht wieso die größe wiedergegeben wirs und dann in Daten, data was,.zudem wird ja immenroch der Fehler angeziegt 😞



  • Svolf schrieb:

    Den code möchtest du garnicht sehen, weil du meckern wirst wie shit er struturiert ist 😞

    Doch, will ich 😃 (ohne zu sehen, was du gemacht hast, kann ich dir leider nicht helfen - Stichwort "Kristallkugel" :D)

    void speichern(Daten data[],size_t anzahl)

    und das versteh ich nicht wieso die größe wiedergegeben wirs und dann in Daten, data was,.zudem wird ja immenroch der Fehler angeziegt 😞

    Kannst du diese Frage bitte in verständlichem Deutsch formulieren?

    (die Größe/Anzahl der zu schreibenden Elemente gebe ich an, weil C sie nicht für mich berechnen kann - und außerdem will ich womöglich nur einen Teil meines Arrays speichern)



  • Ok du wolltets ihn sehen oO

    #include <cstdlib>
    #include <iostream>
    #include <windows.h>
    #include "conwnd.c"
    #include "conioex.h"
    #include <wincon.h>
    #include <string>
    #include <iomanip>
    #include <vector>
    
    using namespace std;  
    
    struct Daten
    {
           string Name;
           int Staffelnummer;
           float Schwimmzeit;
           float Radzeit;
           float Laufzeit;
           int Geschlecht;
           float Ergebnisse;
    };
    
    vector <Daten> feld;
    Daten temp; 
    
    int auswahl;    
    char ende;
    int eingabe;
    char speichernhit;
    int merke;
    int teilnehmer;
    int staffeln;
    int zwischen_schwimm;
    int zwischen_rad;
    int zwischen_lauf;
    int auswahl_unterprogramm;
    string suche;
    int zaehler;
    int anzahl;
    
    void FullScreen();
    void speichern();
    void lesen();
    void System();
    void Beenden();
    void Daten_eingabe();
    void Daten_eingabe_statistik();
    void Personalien();
    void Schwimmzeit();
    void Radzeit();
    void Laufzeit();
    void sortierung();
    void ausgabe();
    void ausgabe_2();
    void statistik();
    void Daten_suche();
    
    /////////////////Hauptprogramm//////////////////////////////////////////////////////    
    
    int main()
    {
    //FullScreen();
    System();
    return EXIT_SUCCESS;
    }
    
    /////////////////System//////////////////////////////////////////////////////////////       
    
    void System()
    {     
    
        setprecision(2);
        setiosflags(ios::fixed);  
    
        textbackground(8);
        system("cls");
    
                for(int x=0; x<1400; x++)
                {
                        textcolor(3);
                        cout << " . ";
                }
    
        MakeWindow(15, 11, 50, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Triathlon"));
    
        PrintWindow(10, 7, TEXT(" [1] Eingabe der Daten"));
        PrintWindow(10, 9, TEXT(" [2] Ausgabe der Daten"));
        PrintWindow(10, 11, TEXT(" [3] Statistik"));
        PrintWindow(10, 13, TEXT(" [4] Datensuche"));
        PrintWindow(10, 15, TEXT(" [0] Ende"));
    
        MakeWindow(15, 39, 50, 10, BUILD_TEXTATTR(BLACK ,CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
    
        textcolor(7);
        gotoxy(10,55);
        cout << "Triathlon by Lars Taeubert and Ronny Manske 2007 production";
    
        PrintWindow(10, 6, TEXT("Ihre Eingabe: "));
        gotoxy(38,44);
        textbackground(3);
        textcolor(4);
        cin >> auswahl;
    
        switch(auswahl)
        {
                       case 0: {
                                      Beenden();
                                      break;                                                 
                               }
                       case 1: {
                                      Daten_eingabe();
                                      break; 
                               }
                       case 2: {
                                      ausgabe();
                                      break; 
                               }
                       case 3: {
                                      statistik();
                                      break; 
                               }
                       case 4: {
                                     Daten_suche();
                                      break; 
                               }
        }
    }
    
    /////////////////////////////Vollbild////////////////////////////////////////////////////
    
    void FullScreen() 
    { 
    keybd_event(VK_MENU, 0x38, 0, 0); 
    keybd_event(VK_RETURN, 0x1c, 0, 0); 
    keybd_event(VK_RETURN, 0x1c, KEYEVENTF_KEYUP, 0); 
    keybd_event(VK_MENU, 0x38, KEYEVENTF_KEYUP, 0); 
    }     
    
    /////////////////////////////Speichern/////////////////////////////////////////////////////
    
    void speichern()
    {
         FILE * stream;                                          
                stream = fopen("System.doc", "wt");              
                fwrite (& feld, sizeof(feld),1,stream);          
                fclose (stream);                                 
    }
    
    /////////////////////////////Lesen/////////////////////////////////////////////////////
    
    void lesen()
    {
         FILE * stream;
                stream = fopen("System.doc", "rt");                 
                fread (& feld, sizeof(feld),1,stream);            
                fclose (stream);
    }    
    
    /////////////////////////////Sortierung/////////////////////////////////////////////////////
    
    void sortierung()
    {
    
     do
     {
         merke = 0;
    
         for(int x=0; x < (teilnehmer-1); x++)
         {
                 if(feld[x].Ergebnisse > feld[x+1].Ergebnisse)
                 {
                            temp = feld[x];
                            feld[x] = feld[x+1];
                            feld[x+1] = temp;
                            merke = 1;
                 }
         }
     }
     while(merke != 0);
    }
    
    /////////////////////////////Beenden////////////////////////////////////////////////////////
    
    void Beenden()
    {
    
        textbackground(8);
        system("cls");
    
             for(int x=0; x<1400; x++)
             {
                  textcolor(3);
                  cout << " . ";
             }
    
       MakeWindow(15, 25, 50, 8, BUILD_TEXTATTR(BLACK, RED), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Beenden"));
    
       textbackground(4);
       textcolor(7);
       gotoxy(21,28);
       cout << "Wollen Sie wirklich beenden (j/n)?  ";
       cin >> ende;
    
              if(ende == 'j')
              {
    
              }
              else
              {
                    System();
              }
    }
    
    //////////////////////////////////Dateneingabe////////////////////////////////////////////////
    
    void Daten_eingabe()
    {
        textbackground(8);
        system("cls");
    
             for(int x=0; x<1400; x++)
             {
                  textcolor(3);
                  cout << " . ";
             }
    
        MakeWindow(3, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("1. Platz"));
    
        MakeWindow(30, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("2. Platz"));
    
        MakeWindow(56, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("3. Platz"));
    
        MakeWindow(7, 28, 40, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Daten Eingabe"));
    
        MakeWindow(53, 28, 25, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Navigation"));
    
        gotoxy(9,13);
        textbackground(3);
        textcolor(4);
        gotoxy(9,13);
        cout << "Keine Daten";
        gotoxy(9,16);
        cout << "vorhanden!";
    
        gotoxy(36,13);
        cout << "Keine Daten";
        gotoxy(36,16);
        cout << "vorhanden!";
    
        gotoxy(61,13);
        cout << "Keine Daten";
        gotoxy(61,16);
        cout << "vorhanden!";
    
        textbackground(3);
        textcolor(7);
        gotoxy(55,32);
        cout << "[1]Eingabe Personalien";
        gotoxy(55,35);
        cout << "[2]Eingabe Schwimmzeit";
        gotoxy(55,38);
        cout << "[3]Eingabe Radzeit";
        gotoxy(55,41);
        cout << "[4]Eingabe Laufzeit";
        gotoxy(55,44);
        cout << "[0]Ausgang";
    
        textbackground(3);
        textcolor(7);
        gotoxy(20,30);
        cout << "Willkommen!";
        gotoxy(10,33);
        cout << "Diese Triathlon Software bieten";
        gotoxy(10,34);
        cout << "Ihn die Moeglichkeit Daten der";
        gotoxy(10,35);
        cout << "Sportler zu erfassen und";
        gotoxy(10,36);
        cout << "Uebersichtlich auszugeben.";
        gotoxy(10,37);
        cout << "Sie haben jederzeit die ";
        gotoxy(10,38);
        cout << "Moeglichkeit wieder auf die ";
        gotoxy(10,39);
        cout << "Daten zu greifen.";
        gotoxy(10,40);
        cout << "Bitte waehlen Sie nun auf der";
        gotoxy(10,41);
        cout << "Navigation ein Punkt aus!";
        gotoxy(10,44);
        cout << "Ihre Auswahl: ";
        textbackground(3);
        textcolor(4);
        cin >> eingabe;
    
        switch(eingabe)
        {
                       case 0: {
                                      System();
                                      break;                                                 
                               }
                       case 1: {
                                     Personalien();
                                      break; 
                               }
                       case 2: {
                                      Schwimmzeit();
                                      break; 
                               }
                       case 3: {
                                      Radzeit();
                                      break; 
                               }
                       case 4: {
                                      Laufzeit();
                                      break; 
                               }
    
        }
    
    }
    
    /////////////////////////////////Daten-Eingabe_Statistik//////////////////////////////////////////
    
    void Daten_eingabe_statistik()
    {
    textbackground(8);
        system("cls");
    
             for(int x=0; x<1400; x++)
             {
                  textcolor(3);
                  cout << " . ";
             }
    
        MakeWindow(3, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("1. Platz"));
    
        MakeWindow(30, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("2. Platz"));
    
        MakeWindow(56, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("3. Platz"));
    
        MakeWindow(7, 28, 40, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Daten Eingabe"));
    
        MakeWindow(53, 28, 25, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Navigation"));
    
        textbackground(3);
        textcolor(7);
        gotoxy(55,32);
        cout << "[1]Eingabe Personalien";
        gotoxy(55,35);
        cout << "[2]Eingabe Schwimmzeit";
        gotoxy(55,38);
        cout << "[3]Eingabe Radzeit";
        gotoxy(55,41);
        cout << "[4]Eingabe Laufzeit";
        gotoxy(55,44);
        cout << "[0]Ausgang";
    
        textbackground(3);
        textcolor(7);
        gotoxy(20,30);
        cout << "Willkommen!";
        gotoxy(10,33);
        cout << "Diese Triathlon Software bieten";
        gotoxy(10,34);
        cout << "Ihn die Moeglichkeit Daten der";
        gotoxy(10,35);
        cout << "Sportler zu erfassen und";
        gotoxy(10,36);
        cout << "Uebersichtlich auszugeben.";
        gotoxy(10,37);
        cout << "Sie haben jederzeit die ";
        gotoxy(10,38);
        cout << "Moeglichkeit wieder auf die ";
        gotoxy(10,39);
        cout << "Daten zu greifen.";
        gotoxy(10,40);
        cout << "Bitte waehlen Sie nun auf der";
        gotoxy(10,41);
        cout << "Navigation ein Punkt aus!";
        gotoxy(10,44);
        cout << "Ihre Auswahl: ";
    
        //////////////////////////////////////Statistik///////////////////////////////////////////////////
    
        gotoxy(5,10);
        cout << "Name: " << feld[0].Name;
        gotoxy(5,12);
        cout << "Geschlecht: " << feld[0].Geschlecht;
        gotoxy(5,14);
        cout << "Staffelnummer: " << feld[0].Staffelnummer;
        gotoxy(5,16);
        cout << "Schwimmzeit: " << feld[0].Schwimmzeit;
        gotoxy(5,18);
        cout << "Laufzeit: " << feld[0].Laufzeit;
        gotoxy(5,20);
        cout << "Radzeit: " << feld[0].Radzeit;
    
        gotoxy(32,10);
        cout << "Name: " << feld[1].Name;
        gotoxy(32,12);
        cout << "Geschlecht: " << feld[1].Geschlecht;
        gotoxy(32,14);
        cout << "Staffelnummer: " << feld[1].Staffelnummer;
        gotoxy(32,16);
        cout << "Schwimmzeit: " << feld[1].Schwimmzeit;
        gotoxy(32,18);
        cout << "Laufzeit: " << feld[1].Laufzeit;
        gotoxy(32,20);
        cout << "Radzeit: " << feld[1].Radzeit;
    
        gotoxy(59,10);
        cout << "Name: " << feld[2].Name;
        gotoxy(59,12);
        cout << "Geschlecht: " << feld[2].Geschlecht;
        gotoxy(59,14);
        cout << "Staffelnummer: " << feld[2].Staffelnummer;
        gotoxy(59,16);
        cout << "Schwimmzeit: " << feld[2].Schwimmzeit;
        gotoxy(59,18);
        cout << "Laufzeit: " << feld[2].Laufzeit;
        gotoxy(59,20);
        cout << "Radzeit: " << feld[2].Radzeit;
    
        textbackground(3);
        textcolor(4);
        gotoxy(24,44);
        cin >> eingabe;
    
        switch(eingabe)
        {
                       case 0: {
                                      System();
                                      break;                                                 
                               }
                       case 1: {
                                     Personalien();
                                      break; 
                               }
                       case 2: {
                                      Schwimmzeit();
                                      break; 
                               }
                       case 3: {
                                      Radzeit();
                                      break; 
                               }
                       case 4: {
                                      Laufzeit();
                                      break; 
                               }
    
        }
    }
    
    //////////////////////////////////Ausgabe////////////////////////////////////////////////////////////////////////
    
    void ausgabe()
    {
    
     lesen();
    
     textbackground(8);
     system("cls");
    
           for(int x=0; x<1400; x++)
            {
                textcolor(3);
                 cout << " . ";
            }
    
          textbackground(3);
          textcolor(7);
    
     MakeWindow(8, 8, 65, 30, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
     TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Statistik"));
    
     MakeWindow(8, 42, 65, 8, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
     TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Eingabe"));
    
           for (int x=0;x<teilnehmer;x++)
          {
                   gotoxy(13,10+x+1);
                   cout << x+1 << ". " << feld[x].Name;                               
          }
    
     textbackground(3);
     textcolor(4);
    
     gotoxy(15,46);
     cout << "Eingabe: ";
     cin >> auswahl_unterprogramm;
    
     if(auswahl_unterprogramm == 0)
     {
                              System();
     }
     else
     {  
                              ausgabe_2();
     }  
    
    }
    
    ///////////////////////////////////Auswahl_Unterprogramm////////////////////////////////////////
    
    void ausgabe_2()
    {
         auswahl_unterprogramm = auswahl_unterprogramm - 1;
    
         textbackground(8);
         system("cls");
    
           for(int x=0; x<1400; x++)
            {
                textcolor(3);
                 cout << " . ";
            }
    
        MakeWindow(8, 8, 65, 30, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Statistik"));   
    
        textbackground(3);
        textcolor(7);
    
         for (int x=0;x<teilnehmer;x++)
          {
                   gotoxy(13,10+x+1);
                   cout << x+1 << ". " << feld[x].Name;                               
          }
    
        MakeWindow(30, 42, 20, 10, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Details"));    
    
        textbackground(3);
        textcolor(4);
    
                   gotoxy(32,44);
                   cout << "Staffelnummer: " << feld[auswahl_unterprogramm].Staffelnummer ;
                   gotoxy(32,45);
                   cout << "Name: " << feld[auswahl_unterprogramm].Name;
                   gotoxy(32,46);
                   cout << "Geschlecht: " << feld[auswahl_unterprogramm].Geschlecht;
                   gotoxy(32,47);
                   cout << "Schwimmzeit: " << feld[auswahl_unterprogramm].Schwimmzeit;
                   gotoxy(32,48);
                   cout << "Radzeit: " << feld[auswahl_unterprogramm].Radzeit;
                   gotoxy(32,49);
                   cout << "Laufzeit: " << feld[auswahl_unterprogramm].Laufzeit;
    
       gotoxy(22,55);  
       system("PAUSE");
       ausgabe();
    
    }
    
    //////////////////////////////////Personalien/////////////////////////////////////////////////////// 
    
    void Personalien()
    {
        textbackground(8);
        system("cls");
    
             for(int x=0; x<1400; x++)
             {
                  textcolor(3);
                  cout << " . ";
             }
    
        MakeWindow(3, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("1. Platz"));
    
        MakeWindow(30, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("2. Platz"));
    
        MakeWindow(56, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("3. Platz"));
    
        MakeWindow(7, 28, 40, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Daten Eingabe"));
    
        MakeWindow(53, 28, 25, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Navigation"));
    
        gotoxy(9,13);
        textbackground(3);
        textcolor(4);
        gotoxy(9,13);
        cout << "Keine Daten";
        gotoxy(9,16);
        cout << "vorhanden!";
    
        gotoxy(36,13);
        cout << "Keine Daten";
        gotoxy(36,16);
        cout << "vorhanden!";
    
        gotoxy(61,13);
        cout << "Keine Daten";
        gotoxy(61,16);
        cout << "vorhanden!";
    
        textbackground(3);
        textcolor(4);
        gotoxy(55,32);
        cout << "[1]Eingabe Personalien";
        textbackground(3);
        textcolor(7);
        gotoxy(55,35);
        cout << "[2]Eingabe Schwimmzeit";
        gotoxy(55,38);
        cout << "[3]Eingabe Radzeit";
        gotoxy(55,41);
        cout << "[4]Eingabe Laufzeit";
        gotoxy(55,44);
        cout << "[0]Ausgang";
    
        textbackground(3);
        textcolor(7);
        gotoxy(13,38);
        cout << "Anzahl der Teilnehmer: ";
        cin >> teilnehmer;
    
        /////////////////////////////////////////Neue Ausgabe//////////////////////////////////////////////
    
        for(int x=0; x<teilnehmer; x++)
        {
                    textbackground(8);
                      system("cls");
    
                        for(int x=0; x<1400; x++)
                                      {
                                       textcolor(3);
                                       cout << " . ";
                                       }
    
                                       MakeWindow(3, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("1. Platz"));
    
                                       MakeWindow(30, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("2. Platz"));
    
                                       MakeWindow(56, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("3. Platz"));
    
                                       MakeWindow(7, 28, 40, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Daten Eingabe"));
    
                                       MakeWindow(53, 28, 25, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Navigation"));
    
                    gotoxy(9,13);
                    textbackground(3);
                    textcolor(4);
                    gotoxy(9,13);
                    cout << "Keine Daten";
                    gotoxy(9,16);
                    cout << "vorhanden!";
    
                    gotoxy(36,13);
                    cout << "Keine Daten";
                    gotoxy(36,16);
                    cout << "vorhanden!";
    
                    gotoxy(61,13);
                    cout << "Keine Daten";
                    gotoxy(61,16);
                    cout << "vorhanden!";
    
                    textbackground(3);
                    textcolor(4);
                    gotoxy(55,32);
                    cout << "[1]Eingabe Personalien";
                    textbackground(3);
                    textcolor(7);
                    gotoxy(55,35);
                    cout << "[2]Eingabe Schwimmzeit";
                    gotoxy(55,38);
                    cout << "[3]Eingabe Radzeit";
                    gotoxy(55,41);
                    cout << "[4]Eingabe Laufzeit";
                    gotoxy(55,44);
                    cout << "[0]Ausgang";
    
                   gotoxy(13,38);
                   cout << "Name: ";
                   gotoxy(13,41);
                   cout << "Geschlecht: ";
    
                //////////////////////////Eingabe in feld.Name/Geschlecht////////////////////////////
    
                   textbackground(3);
                   textcolor(7); 
                   feld[x].Staffelnummer =x + 1;
                   gotoxy(13,35);
                   cout << "Staffelnummer: " <<feld[x].Staffelnummer ;
    
                   gotoxy(13,38);
                   cout << "Name: ";
                   cin >> feld[x].Name;
                   gotoxy(13,41);
                   cout << "Geschlecht: ";
                   cin >> feld[x].Geschlecht;
    
        }
    
        if(teilnehmer > 0)
        {                         
                          speichern();                     
                          Daten_eingabe_statistik();
        }
        else
        {
                          Daten_eingabe();
        }
    
    }
    
    ///////////////////////////////////Eingabe Schwimmzeit/////////////////////////////////////////////////////////
    
    void Schwimmzeit()
    {
    
        zwischen_schwimm = 0;
        staffeln =0;
    
         for(int x=0; x<teilnehmer; x++)
        {
                    textbackground(8);
                      system("cls");
    
                        for(int x=0; x<1400; x++)
                                      {
                                       textcolor(3);
                                       cout << " . ";
                                       }
    
                                       MakeWindow(3, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("1. Platz"));
    
                                       MakeWindow(30, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("2. Platz"));
    
                                       MakeWindow(56, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("3. Platz"));
    
                                       MakeWindow(7, 28, 40, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Daten Eingabe"));
    
                                       MakeWindow(53, 28, 25, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Navigation"));
    
                    gotoxy(9,13);
                    textbackground(3);
                    textcolor(4);
                    gotoxy(9,13);
                    cout << "Keine Daten";
                    gotoxy(9,16);
                    cout << "vorhanden!";
    
                    gotoxy(36,13);
                    cout << "Keine Daten";
                    gotoxy(36,16);
                    cout << "vorhanden!";
    
                    gotoxy(61,13);
                    cout << "Keine Daten";
                    gotoxy(61,16);
                    cout << "vorhanden!";
    
                    textbackground(3);
                    textcolor(7);
                    gotoxy(55,32);
                    cout << "[1]Eingabe Personalien";
                    textbackground(3);
                    textcolor(4);
                    gotoxy(55,35);
                    cout << "[2]Eingabe Schwimmzeit";
                    textcolor(7);
                    gotoxy(55,38);
                    cout << "[3]Eingabe Radzeit";
                    gotoxy(55,41);
                    cout << "[4]Eingabe Laufzeit";
                    gotoxy(55,44);
                    cout << "[0]Ausgang";
    
        textbackground(3);
        textcolor(7);
        gotoxy(13,35);
        cout << "Staffelnummer: ";
        cin  >> staffeln;
        gotoxy(13,39);
        zwischen_schwimm = staffeln-1;
        cout << "Schwimmzeit: ";
        cin  >> feld[zwischen_schwimm].Schwimmzeit;
     } 
    
        for(int x=0; x < teilnehmer; x++)
        {
                feld[x].Ergebnisse = feld[x].Schwimmzeit + feld[x].Laufzeit + feld[x].Radzeit;
        }
    
        if(teilnehmer > 0)
        {                                      
                       sortierung();
                       Daten_eingabe_statistik();
        }
        else
        {
                       Daten_eingabe();
        }
    
    }
    
     ///////////////////////////////////////Eingabe Radzeit//////////////////////////
    
    void Radzeit()
    {
    
        zwischen_rad = 0;
        staffeln =0;
    
         for(int x=0; x<teilnehmer; x++)
        {
                    textbackground(8);
                      system("cls");
    
                        for(int x=0; x<1400; x++)
                                      {
                                       textcolor(3);
                                       cout << " . ";
                                       }
    
                                       MakeWindow(3, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("1. Platz"));
    
                                       MakeWindow(30, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("2. Platz"));
    
                                       MakeWindow(56, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("3. Platz"));
    
                                       MakeWindow(7, 28, 40, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Daten Eingabe"));
    
                                       MakeWindow(53, 28, 25, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Navigation"));
    
                    gotoxy(9,13);
                    textbackground(3);
                    textcolor(4);
                    gotoxy(9,13);
                    cout << "Keine Daten";
                    gotoxy(9,16);
                    cout << "vorhanden!";
    
                    gotoxy(36,13);
                    cout << "Keine Daten";
                    gotoxy(36,16);
                    cout << "vorhanden!";
    
                    gotoxy(61,13);
                    cout << "Keine Daten";
                    gotoxy(61,16);
                    cout << "vorhanden!";
    
                    textbackground(3);
                    textcolor(7);
                    gotoxy(55,32);
                    cout << "[1]Eingabe Personalien";
                    textbackground(3);
                    textcolor(7);
                    gotoxy(55,35);
                    cout << "[2]Eingabe Schwimmzeit";
                    textcolor(4);
                    gotoxy(55,38);
                    cout << "[3]Eingabe Radzeit";
                    textcolor(7);
                    gotoxy(55,41);
                    cout << "[4]Eingabe Laufzeit";
                    textcolor(7);
                    gotoxy(55,44);
                    cout << "[0]Ausgang";
    
        textbackground(3);
        textcolor(7);
        gotoxy(13,35);
        cout << "Staffelnummer: ";
        cin  >> staffeln;
        gotoxy(13,39);
        zwischen_rad = staffeln-1;
        cout << "Radzeit: ";
        cin  >> feld[zwischen_rad].Radzeit;
    
     } 
    
         for(int x=0; x < teilnehmer; x++)
        {
                feld[x].Ergebnisse = feld[x].Schwimmzeit + feld[x].Laufzeit + feld[x].Radzeit;
        }
    
         if(teilnehmer > 0)
        {                                      
                       sortierung();
                       Daten_eingabe_statistik();
        }
        else
        {
                       Daten_eingabe();
        }
    
    }
    
     ///////////////////////////////////////Eingabe Laufzeit//////////////////////////
    
    void Laufzeit()
    {    
        zwischen_lauf = 0;
        staffeln =0;
    
         for(int x=0; x<teilnehmer; x++)
        {
                    textbackground(8);
                      system("cls");
    
                        for(int x=0; x<1400; x++)
                                      {
                                       textcolor(3);
                                       cout << " . ";
                                       }
    
                                       MakeWindow(3, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("1. Platz"));
    
                                       MakeWindow(30, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("2. Platz"));
    
                                       MakeWindow(56, 8, 22, 15, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("3. Platz"));
    
                                       MakeWindow(7, 28, 40, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Daten Eingabe"));
    
                                       MakeWindow(53, 28, 25, 20, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
                                        TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Navigation"));
    
                    gotoxy(9,13);
                    textbackground(3);
                    textcolor(4);
                    gotoxy(9,13);
                    cout << "Keine Daten";
                    gotoxy(9,16);
                    cout << "vorhanden!";
    
                    gotoxy(36,13);
                    cout << "Keine Daten";
                    gotoxy(36,16);
                    cout << "vorhanden!";
    
                    gotoxy(61,13);
                    cout << "Keine Daten";
                    gotoxy(61,16);
                    cout << "vorhanden!";
    
                    textbackground(3);
                    textcolor(7);
                    gotoxy(55,32);
                    cout << "[1]Eingabe Personalien";
                    textbackground(3);
                    textcolor(7);
                    gotoxy(55,35);
                    cout << "[2]Eingabe Schwimmzeit";
                    textcolor(7);
                    gotoxy(55,38);
                    cout << "[3]Eingabe Radzeit";
                    textcolor(4);
                    gotoxy(55,41);
                    cout << "[4]Eingabe Laufzeit";
                    textcolor(7);
                    gotoxy(55,44);
                    cout << "[0]Ausgang";
    
        textbackground(3);
        textcolor(7);
        gotoxy(13,35);
        cout << "Staffelnummer: ";
        cin  >> staffeln;
        gotoxy(13,39);
        zwischen_lauf = staffeln-1;
        cout << "Laufzeit: ";
        cin  >> feld[zwischen_lauf].Laufzeit;
    
     } 
    
          for(int x=0; x < teilnehmer; x++)
        {
                feld[x].Ergebnisse = feld[x].Schwimmzeit + feld[x].Laufzeit + feld[x].Radzeit;
        }
    
         if(teilnehmer > 0)
        {                   
                       sortierung();                        
                       Daten_eingabe_statistik();
        }
        else
        {
                       Daten_eingabe();
        }
    
    }
    
    ////////////////////////////////////////Statistik////////////////////////////////////////////////////////
    
    void statistik()
    {
        textbackground(8);
        system("cls");
    
             for(int x=0; x<1400; x++)
             {
                  textcolor(3);
                  cout << " . ";
             }
    
       MakeWindow(10, 8, 60, 40, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Statistik"));
    
        textbackground(3);
        textcolor(4);
    
        gotoxy(30,11);
        cout << "Beste Schwimmzeit";
    
       do
       {
         merke = 0;
    
         for(int x=0; x < (teilnehmer-1); x++)
         {
                 if(feld[x].Schwimmzeit > feld[x+1].Schwimmzeit)
                 {
                            temp = feld[x];
                            feld[x] = feld[x+1];
                            feld[x+1] = temp;
                            merke = 1;
                 }
         }
       }
       while(merke != 0);
    
        textbackground(3);
        textcolor(7); 
    
        gotoxy(30,15);
        cout << "Staffelnummer: " << feld[0].Staffelnummer;
        gotoxy(30,16);
        cout << "Name :" << feld[0].Name;
        gotoxy(30,17);
        cout << "Schwimmzeit: " << feld[0].Schwimmzeit;
    
        gotoxy(11,20);
        cout << "__________________________________________________________";
    
        textbackground(3);
        textcolor(4);
    
        gotoxy(30,24);
        cout << "Beste Radzeit";
    
       do
       {
         merke = 0;
    
         for(int x=0; x < (teilnehmer-1); x++)
         {
                 if(feld[x].Radzeit > feld[x+1].Radzeit)
                 {
                            temp = feld[x];
                            feld[x] = feld[x+1];
                            feld[x+1] = temp;
                            merke = 1;
                 }
         }
       }
       while(merke != 0);
    
       textbackground(3);
        textcolor(7); 
    
        gotoxy(30,28);
        cout << "Staffelnummer: " << feld[0].Staffelnummer;
        gotoxy(30,29);
        cout << "Name :" << feld[0].Name;
        gotoxy(30,30);
        cout << "Radzeit: " << feld[0].Radzeit;
    
        gotoxy(11,33);
        cout << "__________________________________________________________";
    
        textbackground(3);
        textcolor(4);
    
        gotoxy(30,37);
        cout << "Beste Laufzeit";
    
        do
       {
         merke = 0;
    
         for(int x=0; x < (teilnehmer-1); x++)
         {
                 if(feld[x].Laufzeit > feld[x+1].Laufzeit)
                 {
                            temp = feld[x];
                            feld[x] = feld[x+1];
                            feld[x+1] = temp;
                            merke = 1;
                 }
         }
       }
       while(merke != 0);
    
        textbackground(3);
        textcolor(7); 
    
        gotoxy(30,41);
        cout << "Staffelnummer: " << feld[0].Staffelnummer;
        gotoxy(30,42);
        cout << "Name :" << feld[0].Name;
        gotoxy(30,43);
        cout << "Laufzeit: " << feld[0].Laufzeit;
    
        textbackground(3);
        textcolor(4); 
    
        gotoxy(22,54);  
        system("PAUSE");
        System();
    }
    
    /////////////////////////////////////////Daten_Suche//////////////////////////////////////////////////////
    
    void Daten_suche()
    {
       textbackground(8);
        system("cls");
    
             for(int x=0; x<1400; x++)
             {
                  textcolor(3);
                  cout << " . ";
             }
    
       MakeWindow(15, 15, 50, 10, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Suchergebnis"));
    
       MakeWindow(15, 35, 50, 10, BUILD_TEXTATTR(BLACK, CYAN), CONWND_BORDER_SINGLE, CONWND_SHADOW_RIGHT);
       TitleWindow(CONWND_TITLE_TOPCENTER, TEXT("Eingabe"));
    
       textbackground(3);
       textcolor(4); 
    
       gotoxy(21,20);
       cout << "Bitte geben Sie einen Suchnamen ein!";
    
       gotoxy(20,40);
       cout << "Suchname: ";
       cin >> suche;
    
       zaehler = 0;
    
        do
         {
               if(suche == feld[zaehler].Name)
               {
                      zaehler = anzahl;
               }
    
               zaehler++;
    
         }
         while(zaehler < anzahl);
    
         if(zaehler > anzahl)
            {
            cout << "\n\n\t\t Gefunden!!!";
            system("PAUSE");
            }
            else
            {
            cout << "\n\n\t\t nicht Gefunden!!!";
            system("PAUSE");
            }                       
    
    }
    

    Was nicht funktioniert ist ebend die speicherfunktion, die Datensuche und die begrenzung des Feldelements,.bei allen diesen Sachen,.schmeißt mich der Kompiler raus,.und zeigt einen Fehler! 😞



  • Globale Variablen sind böse.



  • Was nicht funktioniert ist ebend die speicherfunktion, die Datensuche und die begrenzung des Feldelements,.bei allen diesen Sachen,.schmeißt mich der Kompiler raus,.und zeigt einen Fehler! 😞

    Wieviel zahlst Du, wenn ich Dir alle zukünftigen Fehler und deren Lösungen voraussage?



  • ok,.man hätte es auch mit konstanten machen können,..



  • wie fies,.wenn du mir nicht helfen magst,.dann tue es nicht,.kann mein infor-lehrer auch fragten,.wollte es aber ohne hilfe eines diplomtypen,.xD aber dann bin ich hier wohl auch falsch ok,.thread beendet..

    *cry*



  • Ich wollte nur damit ausdrücken, daß "zeigt einen Fehler" alles mögliche bedeuten kann und ich für eine korrekte Antwort Deine Debuggingarbeit übernehmen müsste. Fehler beim Programmieren sind normal und diese zu lösen stellt mehr zufrieden als der Ärger vorher. Das macht ja die Sache so spannend. "zeigt einen Fehler" läßt halt vermuten, daß da einer nur auf eine Antwort hofft, ohne das Problem genau analysiert zu haben. Nimm es als Ansporn, einem Anfänger hilft man meist aus Mitleid, wenn einer ein interessantes Problem hat, hilft man, weil es einen selber interessiert.



  • Also,.ich habe es mal getestet,..speichern tut er,..nur auslesen (lesefunktion),...funktioniert nicht,.könnte jemand sagen, wieso?



  • Ich habe es jetzt einmal mit stream geschrieben,..

    void speichern()
    {         
         ofstream dataus;
         dataus.open("Konfig",ios::out);
         dataus << feld;
         dataus.close();                                       
    }
    
    /////////////////////////////Lesen/////////////////////////////////////////////////////
    
    void lesen()
    {
    
         ifstream datin;
         datin.open("Konfig",ios::in);
    
         int z = 0;
    
         do
         {
            datin >> feld;
         }     
         while(!datin.eof())
    
         z++;
         datin.close();
    
       }
    

    mein Compiler meint

    2 C:\Programme\Dev-Cpp\include\c++\3.4.2\backward\iostream.h:31, from main.cpp In file included from C:/Programme/Dev-Cpp/include/c++/3.4.2/backward/iostream.h:31, from main.cpp

    32:2 C:\Programme\Dev-Cpp\include\c++\3.4.2\backward\backward_warning.h #warning This file includes at least one deprecated or antiquated header. Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard. Examples include substituting the <X> header for the <X.h> header for C++ includes, or <iostream> instead of the deprecated header <iostream.h>. To disable this warning use -Wno-deprecated.

    C:\Dokumente und Einstellungen\USER\Desktop\Triathlon1.1\main.cpp In function `void lesen()':

    188 C:\Dokumente und Einstellungen\USER\Desktop\Triathlon1.1\main.cpp no match for 'operator>>' in 'datin >> feld'

    note C:\Programme\Dev-Cpp\include\c++\3.4.2\bits\istream.tcc:87 candidates are: std::basic_istream<_CharT, _Traits>& std::basic_istream<_CharT, _Traits>::operator>>(std::basic_istream<_CharT, _Traits>&(*)(std::basic_istream<_CharT, _Traits>&)) [with _CharT = char, _Traits = std::char_traits<char>]

    und etc,..da ist bestimmt nur ein kleiner Fehler,..
    Die schreibfunktion funktioniert soweit



  • Was ist 'feld'? Und hast du für dessen Typ einen operator>> definiert?

    (die erste Warnung besagt ganz einfach, daß du anstelle von <iostream.h> besser <iostream> verwenden solltest (erstere ist veraltet und nicht 100% standardkompatibel))



  • #include <iostream>
    // ifstream/ ofstream etc..
    
    using namespace std;
    
    struct Daten 
    { 
           string Name; 
           int Staffelnummer; 
           float Schwimmzeit; 
           float Radzeit; 
           float Laufzeit; 
           int Geschlecht; 
           float Ergebnisse; 
    }; 
    
    Daten feld[6]; 
    
    void speichern()
    {         
         ofstream dataus;
         dataus.open("Konfig",ios::out);
         dataus << feld;
         dataus.close();                                       
    }
    
    /////////////////////////////Lesen/////////////////////////////////////////////////////
    
    void lesen()
    {
    
         ifstream datin;
         datin.open("Konfig",ios::in);
    
         int z = 0;
    
         do
         {
            datin >> feld;
         }     
         while(!datin.eof())
    
         z++;
         datin.close();
    
       }
    

    hmz,..er führt immernoch nicht das Programm aus



  • Also du hast wohl immer noch nichts gelernt was? Gib doch die Fehler an die du hast. Ein "Geht nicht!" sagt doch garnichts aus.

    Zuerst fehlen dir ein paar Header:

    #include <iostream> 
    #include <fstream>
    #include <string>
    #include <sstream>
    

    Die sollten fürs erste reichen.

    Und wie jemand schon sagte: Das

    dataOut << feld;
    

    speichert nur die Adresse nicht das Feld. Davon hast du nichts.

    Du brauchst sowas:

    for (unsigned int i = 0; i < 6; ++i)
        dataOut << feld[i];
    

    Und selbst dann musst du noch einen eigenen <<-Operator definieren.

    Ungefähr so:

    ostream& operator <<(ostream& out, const Daten& daten)
    {
      out << daten.Name;
      out << daten.Staffelnummer;
      // und so weiter...
    }
    

    Dasselbe gilt natürlich für den >>-Operator.

    Gruß
    Don06



  • @Svolf: Kauf Dir ein Buch über C/C++ mit 50 Euro bist Du dabei. Ich habe die Lösung auch nicht gewußt. Im Buch war sie abgedruckt.

    ***DevC++4.0***
    
    8  untitled1.cpp syntax error before `;'
    21 untitled1.cpp `ofstream' undeclared (first use this function)
    21 untitled1.cpp (Each undeclared identifier is reported only once
    21 untitled1.cpp for each function it appears in.)
    21 untitled1.cpp  parse error before `;'
    22 untitled1.cpp `dataus' undeclared (first use this function)
    34 untitled1.cpp `ifstream' undeclared (first use this function)
    34 untitled1.cpp parse error before `;'
    35 untitled1.cpp `datin' undeclared (first use this function)
    45 untitled1.cpp parse error before `++'
    
    ***BCB5.5***
    
    Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
    src\main.cpp:
    Error E2450 src\main.cpp 21: Undefined structure 'ofstream' in function speichern()
    Error E2449 src\main.cpp 21: Size of 'dataus' is unknown or zero in function speichern()
    Error E2450 src\main.cpp 21: Undefined structure 'ofstream' in function speichern()
    Error E2315 src\main.cpp 22: 'open' is not a member of 'ofstream', because the type is not yet defined in function speichern()
    Error E2094 src\main.cpp 23: 'operator<<' not implemented in type 'ofstream' for arguments of type 'Daten *' in function speichern()
    Error E2315 src\main.cpp 24: 'close' is not a member of 'ofstream', because the type is not yet defined in function speichern()
    Warning W8080 src\main.cpp 25: 'dataus' is declared but never used in function speichern()
    Error E2450 src\main.cpp 34: Undefined structure 'ifstream' in function lesen()
    Error E2449 src\main.cpp 34: Size of 'datin' is unknown or zero in function lesen()
    Error E2450 src\main.cpp 34: Undefined structure 'ifstream' in function lesen()
    Error E2315 src\main.cpp 35: 'open' is not a member of 'ifstream', because the type is not yet defined in function lesen()
    Error E2094 src\main.cpp 41: 'operator>>' not implemented in type 'ifstream' for arguments of type 'Daten *' in function lesen()
    Error E2315 src\main.cpp 43: 'eof' is not a member of 'ifstream', because the type is not yet defined in function lesen()
    Error E2378 src\main.cpp 45: Do-while statement missing ; in function lesen()
    Error E2315 src\main.cpp 46: 'close' is not a member of 'ifstream', because the type is not yet defined in function lesen()
    Warning W8004 src\main.cpp 48: 'z' is assigned a value that is never used in function lesen()
    Warning W8080 src\main.cpp 48: 'datin' is declared but never used in function lesen()
    *** 14 errors in Compile ***
    
    ***MSVC++6.0***
    
    --------------------Konfiguration: test - Win32 Debug--------------------
    Kompilierung läuft...
    main.cpp
    main.cpp(21): error C2079: 'dataus' verwendet undefiniertes class 'basic_ofstream<char,struct std::char_traits<char> >'
    main.cpp(22): error C2228: Der linke Teil von '.open' muss eine Klasse/Struktur/Union sein
    main.cpp(23): error C2297: '<<' : Ungültig, da der rechte Operand vom Typ 'struct Daten [6]' ist
    main.cpp(24): error C2228: Der linke Teil von '.close' muss eine Klasse/Struktur/Union sein
    main.cpp(34): error C2079: 'datin' verwendet undefiniertes class 'basic_ifstream<char,struct std::char_traits<char> >'
    main.cpp(35): error C2228: Der linke Teil von '.open' muss eine Klasse/Struktur/Union sein
    main.cpp(41): error C2297: '>>' : Ungültig, da der rechte Operand vom Typ 'struct Daten [6]' ist
    main.cpp(43): error C2228: Der linke Teil von '.eof' muss eine Klasse/Struktur/Union sein
    main.cpp(45): error C2146: Syntaxfehler : Fehlendes ';' vor Bezeichner 'z'
    main.cpp(46): error C2228: Der linke Teil von '.close' muss eine Klasse/Struktur/Union sein
    Fehler beim Ausführen von cl.exe.
    
    main.obj - 10 Fehler, 0 Warnung(en)
    
    ***MinGW***
    
    --------------------Configuration: cpp - Debug--------------------
    Compiling...
    main.cpp
    main.cpp: In function `void speichern()':
    main.cpp:21: error: aggregate `std::ofstream dataus' has incomplete type and
    cannot be defined
    main.cpp: In function `void lesen()':
    main.cpp:34: error: aggregate `std::ifstream datin' has incomplete type and
    cannot be defined
    main.cpp:45: error: syntax error before `++' token
    main.cpp:37: warning: unused variable `int z'
    
    main.o - 5 error(s), 1 warning(s)
    
    ***CodeBlocks***
    
    Project   : Console application
    Compiler  : GNU GCC Compiler (called directly)
    Directory : E:\cblocks\cpp\
    --------------------------------------------------------------------------------
    Switching to target: default
    Compiling: main.cpp
    main.cpp: In function `void speichern()':
    main.cpp:21: error: aggregate `std::ofstream dataus' has incomplete type and cannot be defined
    main.cpp: In function `void lesen()':
    main.cpp:34: error: aggregate `std::ifstream datin' has incomplete type and cannot be defined
    main.cpp:45: error: expected `;' before "z"
    Process terminated with status 1 (0 minutes, 8 seconds)
    3 errors, 0 warnings
    


  • #include <cstdlib>
    #include <iostream>
    #include <windows.h>
    #include "conwnd.c"
    #include "conioex.h"
    #include <wincon.h>
    #include <string>
    #include <iomanip>
    #include <vector>
    #include <fstream>
    
    using namespace std;  
    
    struct Daten
    {
           string Name;
           int Staffelnummer;
           float Schwimmzeit;
           float Radzeit;
           float Laufzeit;
           int Geschlecht;
           float Ergebnisse;
    };
    
    Daten feld[10];
    
    void speichern()
    {
    
         ofstream dat_aus;
         dateiname = "konfig.ini";
         dat_aus.open(dateiname.c_str(), ios_base::out);
         dat_aus << feld << endl;
    
         dat_aus << feld[0].Name;
         dat_aus << feld[1].Name;
    
         dat_aus.close();
    
    }
    
    void lesen()
    {
         ifstream dat_ein;
         dateiname = "konfig.ini";
         dat_ein.open(dateiname.c_str(), ios_base::in);
    
         char zeichen;
         while (!dat_ein.eof())
         {
           dat_ein.get(zeichen);
           cout << zeichen;
         }
        system("PAUSE");
        dat_ein.close();
    }
    

    Toll schaut man sich nun die "ini" an sieht man (wenn man a(1 teilnehmer und b fürn 2 teilnehmer) in der ini ab ,...und das hier

    0x449010

    eine Adresse und was gibt er mir aus,.nur die adresse,...



  • Bei mir gibt er die Addresse und abb aus.

    Wobei das bb am ![irgenwas].eof() liegt.

    Grüße



  • Ja, ein Array kann implizit in einen (konstanten) Zeiger umgewandelt werden - und witzigerweise sind die IOStreams in der Lage, beliebige Zeiger auszugeben. (und da es keinen passenden Ausgabeoperator für 'Daten*' oder 'Daten[]' gibt, nimmt der Compiler das nächstliegende - und das ist der op<< für 'void*')

    Wenn du die Inhalt des Arrays ausgeben willst, mußt du dir eine Schleife bauen:

    for(int i=0;i<10;++i)
      dat_aus<<Daten[i].Name<<' '<<Daten[i].Staffelnummer<<...<<endl;
    

    (die Leerzeichen dazwischen sind nötig, wenn du die Werte später wieder trennen willst)

    PS: Ich bin immer noch der Meinung, du solltest die Adresse und Größe des zu lesenden/schreibenden Arrays als Parameter übergeben.



  • Naja wieso Parameter abgeben, wenn das Feld mit einmal gezogen werden soll,..

    void lesen()
    {
         ifstream dat_ein;
         dateiname = "konfig.ini";
    
         dat_ein.open(dateiname.c_str(), ios_base::in);
    
         char zeichen;
    
         for(int i=0;i<10;++i)
         {  
           dat_ein.get(zeichen);
           zeichen << feld[i].Name << endl;      
         }
    
        system("PAUSE");
        dat_ein.close(); 
    }
    

    178 C:\Dokumente und Einstellungen\USER\Desktop\Triathlon1.1\main.cpp no match for 'operator<<' in 'zeichen << feld[i].Daten::Name'

    Kann mir vielleicht jemand sagen was das bdeutet?
    bzw, ist ja nett wen ihr mir hilft,.aber könnt ihr es bitte vorher testen?

    zudem mit meiner 1. Funktion (seite 1) er speichert ja,..nur das lesen immer ,..zudem wenn ich in der speicherfunktion dann die lesefunktion reinscripte liest er auch,.ich glaube es hat was mit dem Programm zu tuen,.das sich etwas verharckt oder so 😞


Anmelden zum Antworten