如何将HEADER_LENGTH
的{{1}}转换为整数?
此处std::vector<char>
是邮件大小,HEADER_LENGTH
是整个邮件。
更新:
澄清一下,它正在组合前N个元素,而不仅仅是单独转换它们。
感谢。
答案 0 :(得分:1)
我无法得到你的想法所以我做了两个猜测。
#include <iostream>
#include <cstring>
#include <vector>
using namespace std;
int main() {
vector<char> a = {'0','1','2','3','4'};
//My sample is for HEADER_LENGTH of 4
// by memory content
int x;
memcpy(&x, a.data(), 4);
cout << x << endl; //858927408
// by digit
x = 0;
for (auto it = 0; it < 4; it++) {
x = x * 10 + (a[it] - '0');
}
cout << x << endl; //123
return 0;
}
答案 1 :(得分:0)
只需使用for循环迭代向量的HEADER_LENGTH个字符,然后转换它们。
for(int i = 0; i < HEADER_LENGTH; i++)
{
vector[i]; // convert char to int here
}
答案 2 :(得分:0)
您可以像处理数组元素一样处理每个char
。您只需将char
类型转换为int
,即可将int
类型转换为char
。 vector <char> arr;
for(int i = 0; i < HEADER_LENGTH; i++) {
int x = arr[i] - 48;
//or
int x = arr[i] - '0';
}
只是一个1字节的整数。在ASCII码中,数字从48开始。所以;
dependencies {
compile group: 'com.android.support', name : 'multidex', version: '1.0.1'
}
应该工作。