将wchar转换为字符串并推入矢量(C/C++)
Converting wchar to string and push in a vector (C/C++)
我只想将wchar数组转换为字符串,并将其推送到字符串向量中。我的解决方案被注释掉了,因为它不起作用。我得到一个错误,我的向量过载了。代码如下:
vector<wstring> vec;
string tmp;
int n;
int m_device_id = 0;
do {
m_device_id++;
tmp="";
wprintf(L"tDevice %d:rn", m_device_id);
wprintf(L"ttName: %srn", m_device_info.szName);
wprintf(L"ttAddress: %02x:%02x:%02x:%02x:%02x:%02xrn", m_device_info.Address.rgBytes[0], m_device_info.Address.rgBytes[1], m_device_info.Address.rgBytes[2], m_device_info.Address.rgBytes[3], m_device_info.Address.rgBytes[4], m_device_info.Address.rgBytes[5]);
wprintf(L"ttClass: 0x%08xrn", m_device_info.ulClassofDevice);
wostringstream tmp;
for (int i = 0; i < 6; i++)
{
tmp << m_device_info.Address.rgBytes [i];
// Append the colon, but not after the last
if (i < 5)
tmp << L':';
}
vec.push_back(tmp.str());
} while(BluetoothFindNextDevice(m_bt_dev, &m_device_info));
vector<wstring>::iterator it = find(vec.begin(), vec.end(), wstring(L"18:22:85:d8:03:98"));
if(it != vec.end()) {
cout << "Found it" << 'n';
} else {
cout << "Not found" << 'n';
}
BluetoothFindDeviceClose(m_bt_
}while(BluetoothFindNextRadio(&m_bt_find_radio, &m_radio));
==============================================
设备信息结构
typedef struct _BLUETOOTH_DEVICE_INFO {
DWORD dwSize;
BLUETOOTH_ADDRESS Address;
ULONG ulClassofDevice;
BOOL fConnected;
BOOL fRemembered;
BOOL fAuthenticated;
SYSTEMTIME stLastSeen;
SYSTEMTIME stLastUsed;
WCHAR szName[BLUETOOTH_MAX_NAME_SIZE];
} BLUETOOTH_DEVICE_INFO;
首先,如果你问一个关于编译错误的问题,总是把错误放在问题中。
其次,您得到的错误是因为您有一个包含wstring
的vector
,但尝试推送类型为string
的变量。
第三,根据代码判断,要创建字符串的数组不是字符数组,而是数字数组。您可以使用例如std::wostringstream
:创建一个字符串
std::wostringstream tmp;
for (int i = 0; i < 6; i++)
{
tmp << std::hex << std::setw(2) << std::setfill(L'0')
<< m_device_info.Address.rgBytes[i];
// Append the colon, but not after the last
if (i < 5)
tmp << L':';
}
vec.push_back(tmp.str());
相关文章:
- 防止主数据类型C++的隐式转换
- 模板参数替换失败,并且未完成隐式转换
- 努力将整数转换为链表。不知道我在这里做错了什么
- HEX值到wchar_t字符(UTF-8)的转换
- lambda参数转换为constexpr技巧,然后获取带链接的数组
- 将 Qvector<uint8_t> 转换为 QString
- 如何在cuSparse中使用cusparseXcoo2csr从coo转换为csc
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 在c++中使用nlohmann从类到json的转换
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 将Integer转换为4字节的unsined字符矢量(按大端字节顺序)
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何使用OpenCV将RBG图像转换为HSV,并将H、S和V值保存为C++中的3个独立图像
- 复制列表初始化的隐式转换的等级是多少
- 正在将指针转换为范围
- 如何防止 c++ 在从浮点型转换为双精度型(不适用于 IO)时添加额外的小数?
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 是否可以从int转换为enum类类型
- 了解 GLM- openGL 中的相机转换
- 将无符号char*转换为std::istream*C++