2015-11-03 88 views
-1

我想將int變量連接到字符串literal.String literal是一個路徑。 這是代碼如何將整數變量連接到字符串文字

bitmap.Save(L"D:\\screen.jpeg", &clsid); 

在這段代碼中,我想補充int變量screen.I已經嘗試了本

bitmap.Save(L"D:\\screen"+k+L".jpeg", &clsid);// where k is the integer variable. 

後不幸的是,它並沒有爲me.The錯誤工作是

"error C2110: '+' : cannot add two pointers" 
+1

使用['std :: wistringstream'](http://en.cppreference.com/w/cpp/io/basic_istringstream)構建文件名。 –

+0

但你*可以*向指針添加一個int,包括寬字符串文字(這是一個const'wchar_t'數組)的指針衰減。結果是另一個指針,雖然;不存在例如「int.ToString()魔術」。在C#中附加了int的字符串表示。 –

回答

0

編譯器會抱怨,因爲L"D:\\screen.jpeg"wchar[]型和k爲int(可能)。
最簡單的方法是使用std::to_wstring(或std::to_string)方法將int明確轉換爲wstring(或string)。

bitmap.Save((L"D:\\screen" + std::to_wstring(k) + L".jpeg").c_str(), &clsid); 
+0

感謝您的幫助..這也是行不通的 –

+0

錯誤是這........'Gdiplus ::狀態Gdiplus ::圖像::保存(常量WCHAR *,常量CLSID *,常量Gdiplus ::編碼器參數*)':不能將參數1從'std :: basic_string <_Elem,_Traits,_Alloc>'轉換爲'const WCHAR *'......... –

+0

我認爲沒有可以執行此操作的轉換操作符我的解決方案..不知道..我認爲這樣 –

0

如果您使用的是C++ 11,請使用std::to_wstring

bitmap.Save(L"D:\\screen" + std::to_wstring(k) + L".jpeg", &clsid); 

如果您在C++ 11遺憾的是不是,你可以使用std::wstringstream

std::wstringstream strm; 
strm << L"D:\\screen" << k << L".jpeg"; 
bitmap.Save(strm.str()); 
+0

thanx爲你的答案....不幸的是,這也是不工作:( –

+0

@GreeshmaPanicker也許你忘了使用'c_str()'如果'保存)''接受'const char *'。熟悉C++ ... – ikh

0

可以使用std::wstring,但你需要調用.c_str()爲了與期望wchar_t * API使用它。

std::wstring filename = L"D:\\screen" + std::to_wstring(k) + L".jpeg"; 
bitmap.Save(filename.c_str(), &clsid);