gpt4 book ai didi

c++ - Memcpy int 到 char 缓冲区 - 作为 sprintf 的替代

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

#include <iostream>

using namespace std;

int main()
{
char buffer[8];
int field=534;
memcpy(buffer,&field,sizeof(field));
cout<<buffer<<endl;

return 0;
}

这将返回一个空缓冲区。为什么?

基本上是在寻找 sprintf 的替代方法来将 int 转换为 char 缓冲区。

Itoa 不可用。

想法?更好的选择?

最佳答案

您必须使用 sprintf 或 itoa 将二进制 int 转换为 ascii 字符串。

ints 和 char 数组的表示完全不同,ints 可以包含值为零的字节,但字符串只能将其作为最后一个字节。

例如

采用 0 - 在 int 中,它由 4 个字节表示,值为 0,而 ) 作为字符串的前两个字节为 48 和 0,因此没有简单的转换会改变它

关于c++ - Memcpy int 到 char 缓冲区 - 作为 sprintf 的替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3725415/

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