我正在尝试将数字转换为网络,然后将结果放入
中的向量中std::vector<char> vctData;
u_long lnum = 145;
lnum = htonl(lnum);
//This line should put lnum at the beginning of vector in the first 4 bytes
vctData.insert(vctData.begin(), ???, ???);
怎么做???
谢谢
答案 0 :(得分:4)
std::vector<unsigned char> vctData;
u_long lnum = 145;
lnum = htonl(lnum);
vctData.insert(vctData.begin(), (unsigned char *) &lnum, (unsigned char *) (&lnum + 1));
这将获取lnum的各个字节并将它们逐个放入vctData。
答案 1 :(得分:1)
编辑:知道之后,你需要将lnum
添加到char矢量中,然后执行以下操作:
std::vector<char> vctData; //note: mention the type argument!
u_long lnum = 145;
lnum = htonl(lnum);
//inserts in the beginning!
vctData.insert(vctData.begin(),(char*)&lnum, (char*)&lum + sizeof(u_long));
试试这个。让我知道它是否适合你。