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

时间:2015-11-03 11:11:08

标签: c++ string

我想将一个int变量连接到一个字符串literal.String文字是一个路径。 这是代码

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

在这段代码中,我想在screen之后添加int变量。我试过这个

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

不幸的是,它对我没有用。错误是

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

3 个答案:

答案 0 :(得分:0)

编译器抱怨,因为L"D:\\screen.jpeg"类型为wchar[]k为int(可能)。
最简单的方法是使用int(或wstring)方法明确地将string转换为std::to_wstring(或std::to_string)。

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

答案 1 :(得分: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());

答案 2 :(得分: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);