Casting?!



  • Hi Leute ich hab seit neuestem ein Problem und zwar gehts dabei ums Casten. Ich arbeite mit einem Buch. Daraus habe ich folgendes erarbeitet (nur das wichtigste):

    bool firststart = true;
    
    int main()
    {
    	ofstream output("\\game.adv",ios::binary);
    	output.write((char)* &firststart, sizeof(firststart));
    	output.close();
    }
    

    Das Problem ist hier, dass er folgende Meldung ausgibt:

    .\test.cpp(19) : error C2664: 'std::basic_ostream<_Elem,_Traits>::write': Konvertierung des Parameters 1 von 'char' in 'const char *' nicht möglich
    with
    [
    _Elem=char,
    _Traits=std::char_traits<char>
    ]
    Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat

    Ich weis nicht was ich dagegen machen soll, weil ich es so im Buch wiederfinde (nur dass die variable ein integer ist.)

    hofe auf hilfe^^
    **
    Ich glaube ich habs gelöst:

    output.write(reinterpret_cast<char*> (&firststart), sizeof(firststart));
    

    ist es so richtig?**



  • ⚠ troll ⚠



  • probier es doch selber aus troll

    🙄 TROLL ALERT ⚠



  • Es kann ja auch sein, dass es unsichtbare Fehler macht. ist mir selbst schon mal passiert. Und bitte nicht sone dummen Antworten! 😉



  • Hast du dir die Fehlermeldung durchgelesen?

    Fehlermeldung schrieb:

    Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat



  • Ja sry, aber das wird im Buch nicht beschrieben und ich bin Anfänger.
    Das war nur ausm Instinkt heraus. Und es funktioniert auch so.



  • Ist doch nur ein Tippfehler. "(char)* &blubb" macht keinen Sinn, es sollte wohl eher "(char*) &blubb" heissen! f'`8k

    Autocogito

    Gruß, TGGC (making great games since 1992)


Anmelden zum Antworten