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 for
std::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