Komische Ausgabe bei Id3 Tag



  • Hallo ich habe mal Versucht in C++ einen Id3 TAg auszugeben mit

    ID3_Tag myTag("Abba.mp3");
    
    ID3_Frame* myFrame = myTag.Find(ID3FID_TITLE);
    
    	if(myFrame != NULL){
    
    	cout << myFrame <<"\n";
    	cout << "In Abfrage" << "\n";
    	}
    

    Dabei kommt das Raus: 0x804be10

    Ist das Hexadezimal? Und wie kann ich das in ein für Menschen Lessbares Format umwandeln?



  • Scaryman schrieb:

    Dabei kommt das Raus: 0x804be10

    Ist das Hexadezimal? Und wie kann ich das in ein für Menschen Lessbares Format umwandeln?

    Du gibst einen Zeiger aus, also muss das so lauten, wenn der operator<< für ostream und ID3_Frame (ist das ein struct?) überladen ist:

    cout << *myFrame <<"\n";
    


  • Also wenn ich das so Mache kommt die Fehlermeldung:

    mp3.cpp: In function int main()': mp3.cpp:15: error: no match forstd::ostream& << ID3_Frame&' operator
    /usr/include/g++/bits/ostream.tcc:63: error: candidates are:
    std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
    _Traits>::operator<<(std::basic_ostream<_CharT,
    _Traits>&()(std::basic_ostream<_CharT, _Traits>&)) [with _CharT = char,
    _Traits = std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:85: error:
    std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
    _Traits>::operator<<(std::basic_ios<_CharT,
    _Traits>&(
    )(std::basic_ios<_CharT, _Traits>&)) [with _CharT = char, _Traits
    = std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:107: error:
    std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
    _Traits>::operator<<(std::ios_base&()(std::ios_base&)) [with _CharT = char,
    _Traits = std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:179: error:
    std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
    _Traits>::operator<<(long int) [with _CharT = char, _Traits =
    std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:216: error:
    std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
    _Traits>::operator<<(long unsigned int) [with _CharT = char, _Traits =
    std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:154: error:
    std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
    _Traits>::operator<<(bool) [with _CharT = char, _Traits =
    std::char_traits<char>]
    /usr/include/g++/ostream:158: error: std::basic_ostream<_CharT,
    _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short int) [with
    _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/g++/ostream:169: error: std::basic_ostream<_CharT,
    _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(short unsigned
    int) [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/g++/ostream:173: error: std::basic_ostream<_CharT,
    _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(int) [with _CharT
    = char, _Traits = std::char_traits<char>]
    /usr/include/g++/ostream:184: error: std::basic_ostream<_CharT,
    _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(unsigned int)
    [with _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:242: error:
    std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
    _Traits>::operator<<(long long int) [with _CharT = char, _Traits =
    std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:280: error:
    std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
    _Traits>::operator<<(long long unsigned int) [with _CharT = char, _Traits =
    std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:306: error:
    std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
    _Traits>::operator<<(double) [with _CharT = char, _Traits =
    std::char_traits<char>]
    /usr/include/g++/ostream:199: error: std::basic_ostream<_CharT,
    _Traits>& std::basic_ostream<_CharT, _Traits>::operator<<(float) [with
    _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:331: error:
    std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
    _Traits>::operator<<(long double) [with _CharT = char, _Traits =
    std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:356: error:
    std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
    _Traits>::operator<<(const void
    ) [with _CharT = char, _Traits =
    std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:128: error:
    std::basic_ostream<_CharT, _Traits>& std::basic_ostream<_CharT,
    _Traits>::operator<<(std::basic_streambuf<_CharT, _Traits>) [with _CharT =
    char, _Traits = std::char_traits<char>]
    /usr/include/g++/ostream:471: error: std::basic_ostream<char,
    _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const unsigned
    char
    ) [with _Traits = std::char_traits<char>]
    /usr/include/g++/ostream:466: error: std::basic_ostream<char,
    _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, const signed
    char*) [with _Traits = std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:630: error:
    std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char,
    _Traits>&, const char*) [with _Traits = std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:580: error:
    std::basic_ostream<_CharT, _Traits>&
    std::operator<<(std::basic_ostream<_CharT, _Traits>&, const char*) [with
    _CharT = char, _Traits = std::char_traits<char>]
    /usr/include/g++/ostream:432: error: std::basic_ostream<char,
    _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, unsigned char)
    [with _Traits = std::char_traits<char>]
    /usr/include/g++/ostream:427: error: std::basic_ostream<char,
    _Traits>& std::operator<<(std::basic_ostream<char, _Traits>&, signed char)
    [with _Traits = std::char_traits<char>]
    /usr/include/g++/bits/ostream.tcc:508: error:
    std::basic_ostream<char, _Traits>& std::operator<<(std::basic_ostream<char,
    _Traits>&, char) [with _Traits = std::char_traits<char>]
    /usr/include/g++/ostream:416: error: std::basic_ostream<_CharT,
    _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&, char) [with
    _CharT = char, _Traits = std::char_traits<char>]

    Vorher kamm die Nicht



  • Definiere einen:

    std::ostream& operator<<(std::ostream& stream, const ID3_Frame& frame)
    {
    // [...], z.B.
        return stream << frame.text;
    }
    


  • Ich fange gerade mit C++ An könntest du mir mal Kurz erklären was das Heißt was du da schreibst bevor ich das mal Versuch.



  • Weißt du, was Operatorenüberladung ist?

    EDIT: Wenn nicht, lies es nach und nimm bis dahin folgende Lösung:

    cout << myFrame->name << '\n'; // wie ist ID3_Frame deklariert?
    


  • Nein



  • Gut, was genau sind 'ID3_Tag' und 'ID3_Frame'? Hast Du das selbst geschrieben oder ist das Zeug irgendwo öffentlich dokumentiert? (Wenn ja, Wo?)



  • Hab das Problem Gelöst aber ein neues wieder mit einer Klasse die nicht Gefunden Wird

    http://www.c-plusplus.net/forum/viewtopic.php?t=44797&highlight=include


Anmelden zum Antworten