gpt4 book ai didi

c++ - 将 printf 数据写入 c++/cli 中的字符串变量

转载 作者:行者123 更新时间:2023-11-27 23:23:15 25 4
gpt4 key购买 nike

我需要将格式化数据发送到我的 c++/cli 程序中的 tcp ip 端口。我有这段代码但没有成功

String^ data;
sprintf(data,"L,%02u%02u%02u%02u%02u%02u%03u,%lf %lf\n",rDateTime.uiYear, rDateTime.usiMonth, rDateTime.usiDay,
rDateTime.usiHour, rDateTime.usiMinute, rDateTime.usiSec,
rDateTime.udiUSec / 1000,container[i].first,container[i].second);

我收到错误 *error C2664: 'sprintf' : cannot convert parameter 1 from 'System::String ^' to char **

我想把它写入一个字符串变量std::string

有人可以提供一些建议吗?如果至少我将其转换为 System::String^。我可以使用这个 C++/CLI Converting from System::String^ to std::string 将它转换为 std:string .但我不知道如何在 c++/cli 中将不同的数据类型写入字符串^。

最佳答案

您需要声明一个类型为 char* 的临时变量。我在这里使用固定数组进行演示。由于您的字符串可能很长,我建议您查看 _snprintf以避免缓冲区溢出错误。

char* 中获取字符串后,您可以使用 gcnew 创建托管的 System::String

char str[1024];

sprintf(str,"L,%02u%02u%02u%02u%02u%02u%03u,%lf %lf\n",rDateTime.uiYear, rDateTime.usiMonth, rDateTime.usiDay,
rDateTime.usiHour, rDateTime.usiMinute, rDateTime.usiSec,
rDateTime.udiUSec / 1000,container[i].first,container[i].second);

System::String^ data = gcnew System::String(str);
Console::WriteLine(data);

关于c++ - 将 printf 数据写入 c++/cli 中的字符串变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11322146/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com