(C++) Fehlerhaftes Schreibverhalten in .txt aus Class



  • Ich will Attribute aus einer Class in eine txt File mit fprintf packen.

    Wenn ich folgeden Code ausführe, dann schreibt er zwar richtig in die Attribute der Class rein aber die Ausgabe in der Textdatei ist falsch.
    sie sieht nämlich so aus: 1,B,Quadro
    sollte aber: 1,Quadro,Audi
    zuerst soll ja der status, dann der name und dann die marke ausgegeben werden.
    er schreibt aber den stauts (ist ok) dann komischerweise die marke (und das noch falsch) und dann erst den namen. name und marke werden vertauscht. wieso???

    #include <stdio.h>
    #include <iostream>
    #include <string>
    using namespace std;
    
    class ClassCar
    {
    private:
        unsigned short int Status;
        unsigned short int CostPerWeekDay;
        unsigned short int CostPerWeekFinalDay;
        unsigned short int FlatMileageRate;
        unsigned short int BasicChargePerDay;
        string CarName;
        string CarBrand;
    
    public:
        // Get.Set->Status
        unsigned short int GetStatus()
        {   return(Status); }
        void SetStatus(unsigned short int fkt_Status)
        {   Status = fkt_Status;    }
    
        // Get.Set->CostPerWeekDay
        unsigned short int GetCostPerWeekDay()
        {   return(CostPerWeekDay); }
        void SetCostPerWeekDay(unsigned short int fkt_CostPerWeekDay)
        {   CostPerWeekDay = fkt_CostPerWeekDay;    }
    
        // Get.Set->CostPerWeekFinalDay
        unsigned short int GetCostPerWeekFinalDay()
        {   return(CostPerWeekFinalDay);    }
        void SetCostPerWeekFinalDay(unsigned short int fkt_CostPerWeekFinalDay)
        {   CostPerWeekFinalDay = fkt_CostPerWeekFinalDay;  }
    
        // Get.Set->FlatMileageRate
        unsigned short int GetFlatMileageRate()
        {   return(FlatMileageRate);    }
        void SetFlatMileageRate(unsigned short int fkt_FlatMileageRate)
        {   FlatMileageRate = fkt_FlatMileageRate;  }
    
        // Get.Set->BasicChargePerDay
        unsigned short int GetBasicChargePerDay()
        {   return(BasicChargePerDay);  }
        void SetBasicChargePerDay(unsigned short int fkt_BasicChargePerDay)
        {   BasicChargePerDay = fkt_BasicChargePerDay;  }
    
        // Get.Set->CarName
        string GetCarName()
        {   return CarName; }
        void SetCarName(string fkt_CarName)
        {   CarName = fkt_CarName;  }
    
        // Get.Set->CarBrand
        string GetCarBrand()
        {   return CarBrand;    }
        void SetCarBrand(string fkt_CarBrand)
        {   CarBrand = fkt_CarBrand;    }
    
    };
    
    int main()
    {
    ClassCar obj1;
    
    obj1.SetCarName("Carname");
    obj1.SetCarBrand("Carbrand");
    //obj1.SetBasicChargePerDay(100);
    //obj1.SetCostPerWeekDay(10);
    //obj1.SetCostPerWeekFinalDay(15);
    //obj1.SetFlatMileageRate(3);
    obj1.SetStatus(1);
    
    FILE * FilePointer = fopen("test.txt","w+");
    fprintf(FilePointer, "%d,%s,%s", obj1.GetStatus(), obj1.GetCarName(), obj1.GetCarBrand());
    fclose(FilePointer);
    
    return(1);
    }
    

    [ Dieser Beitrag wurde am 15.03.2003 um 13:51 Uhr von Peter Piksa editiert. ]



  • du versuchst einen string wie einen char* zu behandeln, das kan aber nicht gut gehen (du vergleichst Äpfel mit Birnen)

    Ich verschieb dich ins C++ Forum wo du hingehörst.

    verwende einfach C++ streams und du bist das Problem los.


Anmelden zum Antworten