CString ausgeben
-
Hallo!
Ich möchte den
CString *ins = new CString(line);mit fprintf ausgeben.
fprintf(datei, ins);scheitert, da
Konvertierung des Parameters 2 von 'class CString *' in 'const char *' nicht moeglichist.
Gibt es eine Möglichkeit den CString so direkt auszugeben?
Ansonsten: Wie kann ich "von Hand aus" CString in const char umwandeln?
-
Hallo,
für CString ist doch der << operator überladen, d.h. du kannst ihn über einen ofstream, wie z.B. cout ausgeben. Wenn du weiterhin printf verwenden möchtest, kannst du mit CString::GetBuffer() nen Pointer zu den chars holen und das dann ausgeben. Ach ja, fprintf braucht auch format flags, also pack die auch noch dazu:
fprintf( datei, "%s\n", myCString.GetBuffer() );Siehe auch hier: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wcemfc/htm/cstring.asp
MfG
GPC
-
Wenn der Compiler von selbst nicht merkt, daß er einen Konvertierungsoperator einsetzen muß, kannst du ihn ja mal mit der Nase draufstupsen (Stichwort "Cast"). Ansonsten besteht noch die Möglichkeit, daß du gerade mit UNICODE arbeitest - in dem Fall benötigst du die wchar_t-Version von fprintf().
(PS: Übrigens ist CString keine Standard-C++-Klasse, sondern gehört ins MFC-Board. Standardler arbeiten lieber mit std::string)