如何将整数变量连接到字符串文字

问题描述:

我想将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的字符串表示。 –

编译器会抱怨,因为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>'转换为'const WCHAR *'......... –

+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

可以使用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);