在 C++ 中,在 double、achar *
或std::string
.
res_array[i] + " "
正在尝试将 double 添加到char *
,因此编译器尝试进行隐式转换,但不存在,因此它会给您一个错误,说operator+
需要数字类型。
相反,您需要显式转换res_array[i]
为字符串。
// File: convert.h
#include <iostream>
#include <sstream>
#include <string>
#include <stdexcept>
class BadConversion : public std::runtime_error {
public:
BadConversion(std::string const& s)
: std::runtime_error(s)
{ }
};
inline std::string stringify(double x)
{
std::ostringstream o;
if (!(o << x))
throw BadConversion("stringify(double)");
return o.str();
}
上面的例子来自 The C++ FAQ,尽管有很多 stackoverflow 问题专门针对这个主题,但 TC++FAQ 值得真正为 OG 呐喊 :)
或者使用 C++11,使用std::to_string
strarr[i] = std::to_string(res_array[i]) + " " + fileNamesVector[i];