UNICODE Ausgabe mit wvsprintf
-
Ich möche mir in meine logdatei eine float variable ausgeben, hier "Kontrolle", in der Logdatei kommt dann als resultat nur "f" an und nicht die float variable. irgendwie wird mien %f nicht durch dne wert der variablen ersetzt, wieso?
fTextout(TEXT("Kontrollvariable: %f <br>"), Kontrolle);
Dieser Aufruf spricht diese Methoden an:
void CLogFile::fTextout(const TCHAR *Text, ...) { TCHAR buffer[MAX_BUFFER]; va_list pArgList; va_start (pArgList, Text); wvsprintf(buffer, Text, pArgList); va_end(pArgList); Textout(buffer); }
Textout ist wie folgt definiert:
void CLogFile::Textout(const TCHAR *Text) { fwprintf(m_Logfile, Text); fflush(m_Logfile); }
wo ist der fehler`ich starr mir schon löcher in den monitor....
-
TCHAR ?!...WinAPI! Falsches Subforum
-
Ist TCHAR immer Win Api?
Wie dem auch sei, jemand eine Idee warum mein Platzhalter nicht gefüllt wird?
-
weil wsprintf bzw die UNICODE-Versionen kein float unterstützen, dazu brauchst du sprintf(ANSI) bzw. swprintf(UNICODE)
-
CodeFinder schrieb:
weil wsprintf bzw die UNICODE-Versionen kein float unterstützen, dazu brauchst du sprintf(ANSI) bzw. swprintf(UNICODE)
ah ok, danke.
Ganz gelöst ist das Problem noch nciht:
Wenn ich die methode aufrufe
float Kontrolle = 123.456f; g_pLogfile->fTextout(TEXT("Kontrollvariable: %f <br>"), Kontrolle);
wird meine Variable nicht richtig umgesetzt, es kommt nur 0.0000 an und nicht die eigentliche Zahl.
void CLogFile::fTextout(const TCHAR *Text, ...) { TCHAR buffer[MAX_BUFFER]; va_list pArgList; va_start (pArgList, Text); swprintf(buffer, Text, pArgList); va_end(pArgList); Textout(buffer); } void CLogFile::Textout(const TCHAR *Text) { fwprintf(m_Logfile, Text); fflush(m_Logfile); }
Irgendwie gibts Probleme meine Float variable umzusetzen. Es kommt nur 0.000 an. Ich vermute das Problem bei meiner Liste mit den Anzahl übergebener Parameter. Zumindest werden die Informationen im Debug als "Rot" gekennzeichnet, was scheinbar ein Problem vermuten lässt. Allerdings fehlt mir das Verständnis um den Feldinhalt zu deuten.
Wo ist das Problem?