komplett fehlerhafte ausgabe einer funktion (nutzt SYSTEMTIME)
-
hi
wenn ich die untere funktion ausführe und den rückgabewert ausgeben lasse bekomme ich LOGTXT_PART1 mit ausgegeben.
wieso das?
ich benutze dort garnicht LOGTXT_PART1ich habe diesen codeabschnitt
//statt asdf steht hier eine große menge htmlcode. allerdings wird dieser post //für spamm gehalten wenn ich den htmlcode stehen lasse...... #define LOGTXT_PART1 "awdsf"\ "asdf" #define LOGTXT_PART2 "asdf" \ "asdf" #define LOGTXT_END "asdf" string timeAsString(){ SYSTEMTIME STime; GetSystemTime(&STime); string sRet=""; sRet.append(""+STime.wDayOfWeek+1); sRet.append("."+STime.wMonth); sRet.append("."+STime.wYear); sRet.append(" "+STime.wHour+1); sRet.append("_"+STime.wMinute+1); sRet.append("_"+STime.wSecond); sRet.append("_"+STime.wMilliseconds+1); return sRet; };
-
Du kannst auch keinen Wer tauf diese Weise umformen:
""+STime.wDayOfWeek+1Du addierst zu einem consat char * einen Wert, der in das Nirwana zeigt. Das muss schief gehen.
Also:
sprintf verwenden oder _ltoa oder eben die std stream Funktionen...PS: Lies mal etwas mehr über die Grundlagen von C/C++.
-
Erstens suchtst du wahrscheinlich nach einer Funktion wie GetLocalTime.
Außerdem klappt das Anfügen von Integern (WORDs in diesem Beispiel), wie Martin Richter bereits geschrieben hat, an einen String so nicht, du kannst aber folgende Hilfsklasse nutzen (ich hatte so etwas Ähnliches hier rumliegen).#include <iomanip> #include <iostream> #include <windows.h> using namespace std; class LocTime { public: LocTime(); ~LocTime() {} friend ostream& operator<<(ostream& o, const LocTime& s); private: SYSTEMTIME st; }; LocTime::LocTime() { GetLocalTime(&st); } ostream& operator<<(ostream& o, const LocTime& s) { o<<setfill('0')<<s.st.wDay<<"."<<setw(2)<<s.st.wMonth<<"."<<setw(4)<<s.st.wYear; o<<", "<<setw(2)<<s.st.wHour << ":"<<setw(2)<<s.st.wMinute<<":"<<setw(2)<<s.st.wSecond; return o; } // Zugriff: LocTime t; stringstream s; s<<t; // s.str() kann nun verwendet werdenDie Ausgabe sieht dann in etwa so aus:
22.12.2010, 19:55:18Alternativ kannst du auch Hilfsfunktionen wie
template<class Type> std::basic_string<TCHAR> ToString(Type val) { std::basic_ostringstream<TCHAR> o; o << val; return(o.str()); }oder für Arrays Funktionen wie sprintf, itoa etc. nutzen.