void TATTDataset::AckErrHandler(const NDataString& ErrMsg)
{
    system("echo ErrMsg: %s >> err", (const char *)ErrMsg);
    ...... code .......
}


此错误消息是什么意思?我该如何解决? ErrMsg.toCString()也不起作用。有什么建议吗?

编辑:

我按照建议编辑了代码-

String s;
Char *tmpStr = ErrMsg.ToCString();
s.Format("echo ErrMsg: %s >> err",tmpStr);
system(s);


我仍然得到:
 无法使用'const char *'初始化'char *'。
 字符* tmpStr = ErrMsg.ToCString();

最佳答案

system()调用实际上只有一个参数。您要尝试做的是让system()printf()一样工作,这显然不是其设计目的。

您不能尝试使用可以进行某些解析或创建临时缓冲区并使用sprintf()的字符串类。

07-27 13:38