繁体   English   中英

C ++ 2字节数组计算(char数组,字符串和整数)

[英]C++ 2 Byte Array Calculations (char arrays, strings and integers)

在C ++中,我有两个数组:

char width[2]
char height[2]

我的值(十六进制)为:

width[0]= 01
width[1] = 00
height[0] = 00   
height[1]= A8

尺寸为256x168。 我很难将两个char值组合成一个字符串,然后将该字符串转换为“组合的”整数以便以后进行操作。

我尝试以下操作均未成功:

string sImageWidth = string() + width[0] + width[1];
string sImageHeight = string() + height[0] + height[1];

还有...

std::stringstream ssImageWidth;
ssImageWidth << width[0] << width[1];
std::string sImageWidth = ssImageWidth.str();

我究竟做错了什么? 还有其他方法吗? 我是C ++的新手,我的头来自C#背景。 谢谢!

您的作业应采用以下格式:

<char_pos> = 0x<value>;

如果您正在谈论十六进制值。 我假设这只是问题的错字,否则您将遇到其他问题。

您是否关心字符串值? 如果执行此操作,则可以完全跳过转换为字符串的操作...

int H{(height[0] << 8) | height[1]};

至于转换为字符串,谷歌“字符串流” ,这将允许您执行类似您要查找的内容,然后在完成后将其转换为字符串。

如果要将字符串作为两个字符,则可以使用:

string sImageWidth = string() + width[0] + width[1];
string sImageHeight = string() + height[0] + height[1];

因为string的+运算符可以处理char。 如果您希望字符串为char的实际数字值,则需要进行一些解析,例如

std::string width = std::to_string(static_cast<int>(width[0])) + std::to_string(static_cast<int>(width[1]))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM