[英]C++ String of Bytes convert to byte datatype and count bytes
如標題所述,我嘗試將C ++字節字符串轉換為字節數據並計數字節。 我從文本框中獲取的字符串將包含一系列一個字節的十六進制數字,但是我需要將其作為字節發送。
char packet_data[200];
HWND hTextBox2 = GetDlgItem(TabOneDlg,IDC_EDIT3);
SendMessageA(hTextBox2, WM_GETTEXT, (WPARAM)200, (LPARAM)packet_data);
這就是我獲取輸入值的方式(我正在使用Win32 API-非托管形式)
輸入字符串示例(十六進制)
AA BB CC DD - 4 bytes !
在SHORT中,我想這樣做:得到了一個包含十六進制數字文本表示形式的字符串,並且我想將十六進制數字的每個文本表示形式轉換為“正常”數字。
如果您確定十六進制數之間用空格隔開(如問題所示),則提取它們是一個簡單的問題。 C ++中最簡單的方法是使用std::istringstream
和常規輸入運算符>>
:
std::istringstream istr(packet_data);
std::vector<uint8_t> data;
uint8_t i;
while (istr >> std::hex >> i)
data.push_back(i);
在上面的代碼之后,向量data
將包含字符串中的所有數據。 如果您需要例如通過套接字(或類似接口)發送數據,則可以使用std::vector::data
獲取指向數據的原始指針(如果data
功能不存在,則使用&data[0]
),字節數可從std::vector::size
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.