2013-03-28 74 views
0

我有以下代碼,我試圖將整數更改爲wstring,然後我可以將它傳遞給文本文件。但問題是,當它達到_itow_s(vec,img_stamp,10);行它將數字更改爲負數。 任何機構知道什麼是問題?更改整數到C++中的wstring

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); 

回答

2

爲什麼不使用wstringstream

wstringstream ws; 
for (...) { // some loop 
    ws << myint << ", "; 
} 
//now, you can use ws.str() to extract a wstring from the stream 
+0

感謝您的回覆,但問題是,如果我不使用wstring,我可以將數據添加到txt文件throguh WriteFile – user261002

+1

但是,這確實會給你一個'wstring'! 'ws.str()'給你包含在流中的'wstring'。 (我已經編輯了代碼,以使其清晰。) – us2012

+1

這將解決問題。 +1當然,當你已經有一個'wstringstream'時,使用'+ ='來進行字符串連接是非常愚蠢的。使用流來收集* everything *,然後在最後轉換爲字符串一次。 –

2

C++ 11加入一個被稱爲 'std::to_string()',其可將數字轉換,浮點型,或長至長爲std :: string功能。還有一組相關的wstrings函數:std::to_wstring()。