string mesag="";
mesag="aDoubleArray value at 0------->"<<aDoubleArray[0]<<" aDoubleArray value at 1 is "<<aDoubleArray[1];
addLog(AMR_LT_WARN, mesag);// this part not working
addLog(AMR_LT_WARN, "this works well");
我不知道关于c ++的任何事情只是想将aDoubleArray值打印到日志文件但它会抛出 错误C2297:'&lt;&lt;' :非法,右操作数类型为'double'
答案 0 :(得分:3)
您需要使用字符串流来完成此操作。包含sstream
,您可以执行以下操作:
#include <iostream>
#include <sstream>
int main(void) {
double d = 3.14159; // this is the double.
std::stringstream ss; // this is the stream.
ss << "Double is " << d; // Send normal output to stream.
std::cout << "[" // Use str() to get underlying string.
<< ss.str()
<< "]"
<< std::endl;
return 0;
}
这将字符串流设置为包含"Double is 3.14159"
并输出括在方括号中的内容:
[Double is 3.14159]
答案 1 :(得分:1)
您正在处理“aDoubleArray值为0 --------&gt;”作为一个流。 Const字符串不是输入流。查看http://www.fredosaurus.com/notes-cpp/strings/stringstream.html,因为字符串流可能就是您想要的。
答案 2 :(得分:0)
您必须执行以下操作:
char message[100];
sprintf(message, "aDoubleArray value at 0-------> %g aDoubleArray value at 1 is %g", aDoubleArray[0], aDoubleArray[1]);
std::string mesag(message);
addLog(AMR_LT_WARN, mesag);// this part not working
addLog(AMR_LT_WARN, "this works well");