比如 这样的数据 0x30 0x31 0x32 0x33 可以保存在 string类中,但是有些字符无法显示,不能保存在string类中。使用 char * 这样保存动态申请内存,总要需要自己释放,太麻烦。。有没有这样的容器类 可以保存 字节流,而不是asc字符串。
先谢谢大家
实现类似这样的操作
不知道我说清楚了没有,
谢谢大家了,困惑了我很久啊 。。
12 个解决方案
#1
不会有问题,string可以存放二进制的内容。
#2
http://*.com/questions/4655206/is-it-valid-to-use-stdstring-to-hold-binary-data-to-avoid-manual-dynamic-mem
#3
脑袋有点小晕了。。假如我要在string中加一个 int类型的数据 得 取地址 然后在后面加结束符
append到里面么?
#4
谢谢你的回答,我看看这篇文章,就是串口 需要发送一些 HEX串,我一直不知道C++的方法保存这些串和操作这些串的方法
#5
粗心了。。append有 限定长度的
#6
用string存放挺合适的,字节流本身就包含了不能直接显示的字节,很正常的,本来那些字节就是数据而已,你也不需要让它们直接去显示和打印,有自己的协议去解析它们的含义。
#7
搞不懂你好你既存储二进制流了,为什么还在纠结有些字符无法显示?
#8
恩恩 谢谢,自己有些问题 脑袋转不过来。。习惯ASC串的操作,对于二进制的流还是晕。。
#9
basic_string其实就是POD版本的vector,只要可以用memcpy进行复制的数据都可以放在里面。
struct point
{
int x;
int y;
};
int main()
{
std::basic_string<point> ptary;
point data[] = { 1, 2, 3, 4, 5, 6};
ptary.append( & data[0], & data[3]);
……
}
#10
搞不懂你好你既存储二进制流了,为什么还在纠结有些字符无法显示?
自己把自己绕进去了。。哎,项目中大量的Cstring还是unicode类型的,
因为习惯使用Cstring的 Mid 来截取串中字符。。
操作的时候 HEX串 和字符串 转来转去的 我快晕死了。。
#11
basic_string其实就是POD版本的vector,只要可以用memcpy进行复制的数据都可以放在里面。
struct point
{
int x;
int y;
};
int main()
{
std::basic_string<point> ptary;
point data[] = { 1, 2, 3, 4, 5, 6};
ptary.append( & data[0], & data[3]);
……
}
恩恩 谢谢指导,第一次听说 basic_string 。。还是见识短。。研究研究
#12
感谢大家的热心帮助,这个问题基本解决了
谢谢大家,结贴给分
谢谢大家,结贴给分
#1
不会有问题,string可以存放二进制的内容。
#2
http://*.com/questions/4655206/is-it-valid-to-use-stdstring-to-hold-binary-data-to-avoid-manual-dynamic-mem
#3
不会有问题,string可以存放二进制的内容。
脑袋有点小晕了。。假如我要在string中加一个 int类型的数据 得 取地址 然后在后面加结束符
append到里面么?
#4
http://*.com/questions/4655206/is-it-valid-to-use-stdstring-to-hold-binary-data-to-avoid-manual-dynamic-mem
谢谢你的回答,我看看这篇文章,就是串口 需要发送一些 HEX串,我一直不知道C++的方法保存这些串和操作这些串的方法
#5
不会有问题,string可以存放二进制的内容。
粗心了。。append有 限定长度的
#6
用string存放挺合适的,字节流本身就包含了不能直接显示的字节,很正常的,本来那些字节就是数据而已,你也不需要让它们直接去显示和打印,有自己的协议去解析它们的含义。
大家好,我现在需要存储这样的东西 把 二进制流 类似于string类那样的保存起来。
比如 这样的数据 0x30 0x31 0x32 0x33 可以保存在 string类中,但是有些字符无法显示,不能保存在string类中。使用 char * 这样保存动态申请内存,总要需要自己释放,太麻烦。。有没有这样的容器类 可以保存 字节流,而不是asc字符串。
先谢谢大家
实现类似这样的操作
不知道我说清楚了没有,
谢谢大家了,困惑了我很久啊 。。
#7
搞不懂你好你既存储二进制流了,为什么还在纠结有些字符无法显示?
#8
用string存放挺合适的,字节流本身就包含了不能直接显示的字节,很正常的,本来那些字节就是数据而已,你也不需要让它们直接去显示和打印,有自己的协议去解析它们的含义。
大家好,我现在需要存储这样的东西 把 二进制流 类似于string类那样的保存起来。
比如 这样的数据 0x30 0x31 0x32 0x33 可以保存在 string类中,但是有些字符无法显示,不能保存在string类中。使用 char * 这样保存动态申请内存,总要需要自己释放,太麻烦。。有没有这样的容器类 可以保存 字节流,而不是asc字符串。
先谢谢大家
实现类似这样的操作
不知道我说清楚了没有,
谢谢大家了,困惑了我很久啊 。。
恩恩 谢谢,自己有些问题 脑袋转不过来。。习惯ASC串的操作,对于二进制的流还是晕。。
#9
basic_string其实就是POD版本的vector,只要可以用memcpy进行复制的数据都可以放在里面。
struct point
{
int x;
int y;
};
int main()
{
std::basic_string<point> ptary;
point data[] = { 1, 2, 3, 4, 5, 6};
ptary.append( & data[0], & data[3]);
……
}
#10
搞不懂你好你既存储二进制流了,为什么还在纠结有些字符无法显示?
自己把自己绕进去了。。哎,项目中大量的Cstring还是unicode类型的,
因为习惯使用Cstring的 Mid 来截取串中字符。。
操作的时候 HEX串 和字符串 转来转去的 我快晕死了。。
#11
basic_string其实就是POD版本的vector,只要可以用memcpy进行复制的数据都可以放在里面。
struct point
{
int x;
int y;
};
int main()
{
std::basic_string<point> ptary;
point data[] = { 1, 2, 3, 4, 5, 6};
ptary.append( & data[0], & data[3]);
……
}
恩恩 谢谢指导,第一次听说 basic_string 。。还是见识短。。研究研究
#12
感谢大家的热心帮助,这个问题基本解决了
谢谢大家,结贴给分
谢谢大家,结贴给分