下面我在char数组中有两个变量存储
char one[7] = "130319";
char two[7] = "05A501";
我尝试用stringstream连接它们
std::ostringstream sz;
sz << one<< two;
之后,我将其转换为字符串
std::string stringh = sz.str();
然后我尝试将其合并以形成文件的路径 并在该文件中写文字
std::string start="d:/testingwinnet/json/";
std::string end= ".json";
std::string concat= start+stringh + end;
ofstream myfile(concat);
myfile << "test";
myfile.close();
我收到以下错误
error C2040: 'str' : 'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' differs in levels of indirection from 'char *
任何想法。非常感谢
答案 0 :(得分:3)
问题是您使用的是Visual Studio的 非常 旧版本。比C ++ 11标准要古老得多,后者引入了将std::string
作为文件名传递到文件流的功能。
打开带有const char *
的文件时,必须使用C样式字符串(std::ofstream
)作为文件名。
因此,当前代码的解决方案是
ofstream myfile(concat.c_str());
答案 1 :(得分:0)
考虑查看此先前的答案以进行字符串串联How to concatenate two strings in C++?