У меня есть следующий код, который я пытаюсь изменить целое число на wstring, тогда я могу передать его в текстовый файл. но проблема в том, что когда он достиг _itow_s (vec, img_stamp, 10); линия это изменить номер на отрицательное число.
кто-нибудь знает, в чем проблема?
wchar_t img_stamp[64];
while(c<_timeStamp.size()){
vec=_timeStamp.at(c);
_itow_s(vec, img_stamp, 10);
_data +=std::wstring(img_stamp);
_data +=std::wstring(L"\r\n");
c++;
}HANDLE hFile;
DWORD wmWritten;
hFile = CreateFile( "D:\\test\\testing.txt" ,GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ,NULL,OPEN_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
if(hFile!=NULL){
DWORD len=sizeof(_data);
WriteFile(hFile, _data.c_str(), _data.size() * 2, &wmWritten, NULL);
}
CloseHandle(hFile);
Почему бы вам не использовать wstringstream
?
wstringstream ws;
for (...) { // some loop
ws << myint << ", ";
}
//now, you can use ws.str() to extract a wstring from the stream
C ++ 11 добавил функцию под названием ‘станд :: to_string() ‘, который преобразует число, число с плавающей запятой или long long в std :: string. Существует также связанный набор функций для строк wstring: станд :: to_wstring().