簡體   English   中英

C ++字節字符串轉換為字節數據類型並計數字節

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM