gpt4 book ai didi

c++ - 如何避免与 char* 一起提供长度?

转载 作者:太空宇宙 更新时间:2023-11-04 14:43:49 25 4
gpt4 key购买 nike

有一个function向服务器发送数据:

int send(
_In_ SOCKET s,
_In_ const char *buf,
_In_ int len,
_In_ int flags
);

提供长度在我看来有点奇怪。我需要编写一个函数,向服务器发送一行并包装这一行,这样我们就不必明确提供长度。我是一名 Java 开发人员,在 Java 中我们可以调用 String::length() 方法,但现在我们不在 Java 中了。我该怎么做,除非提供长度作为模板参数?例如:

void sendLine(SOCKET s, const char *buf)
{
}

是否可以实现这样的功能?

最佳答案

使用标准字符串:

void sendLine(SOCKET s, const std::string& buf) {
send (s, buf.c_str(), buf.size()+1, 0); //+1 will also transmit terminating \0.
}

附带说明:您的包装函数忽略返回值并且不接受任何标志。

关于c++ - 如何避免与 char* 一起提供长度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29192844/

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