我想将一个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"
答案 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);