使用带有sprintf()函数的字符串时遇到麻烦

时间:2014-11-28 20:20:01

标签: c++ string shared-memory

我希望这将是一个非常基本的问题,可能是由于我对许多C ++ Win32 API的不了解。

无论如何,我在sprintf()功能方面遇到了一些麻烦。使用像这样的字符串我没有问题:

//memory is a void pointer that maps a file to shared memory
sprintf((char *)memory, "Shared memory message"); //Write to shared memory

但是当我尝试使用string变量时,它无法正常工作......

sprintf((char *)memory, str_var); //Write to shared memory

我收到错误消息:no suitable conversion function from "std::string" to "const char *" exists。我甚至无法通过类型转换来解决这个问题,就像我对memory所做的那样。

这似乎很不一致。我做错了什么,如何给它一个值得接受的价值?

1 个答案:

答案 0 :(得分:2)

如果您需要sprintf,则需要传递const char*

所以,例如。

sprintf((char *)memory, str_var.c_str());