【问题标题】:how to print tchar in c++如何在 C++ 中打印 tchar
【发布时间】:2012-12-13 08:08:34
【问题描述】:

我正在尝试用 C++ 打印 UCHAR btMACAddress[INTEL_MAC_ADDR_LENGTH]

cout<<"adapter MAC address="<<padapter->btMACAddress<<endl;

上面显示 NULL

在 c 中我可以打印。

printf("adapter macaddress  %02x:%02x:%02x:%02x:%02x:%02x \n",
       pAdapter->adapter[0].btMACAddress[0],
       pAdapter->adapter[0].btMACAddress[1],
       pAdapter->adapter[0].btMACAddress[2],
       pAdapter->adapter[0].btMACAddress[3],
       pAdapter->adapter[0].btMACAddress[4],
       pAdapter->adapter[0].btMACAddress[5]);

【问题讨论】:

  • 您能否提供一个最小的示例来展示您填写和打印btMACAddress 的努力?
  • 实际上我正在向 API 发送结构变量的地址。它将在哪里填充并返回我们的无线适配器功能。我想显示 MAC 地址。 coutbtMACAddress
  • 评论前不小心按了大写锁定?
  • 是的,我不小心按下了
  • 你应该基本上做你在 C 中所做的事情(即一个接一个地打印字节),但使用流和stream manipulators 进行格式化。

标签: c++


【解决方案1】:

正如 Joachim 指出的,您可以使用 stream manipulators 来控制打印值的格式。

所需的头文件:

#include <ios>
#include <iomanip>
#include <iostream>

using namespace std;

打印 MAC 地址的代码:

cout << "adapter macaddress ";
for (int i=0; i<INTEL_MAC_ADDR_LENGTH; i++)
{
    if (i > 0) cout << ':';
    cout << hex << setw(2) << setfill('0') 
         << (unsigned int) pAdapter->adapter[0].btMACAddress[i];
}
cout << endl;

【讨论】:

  • 感谢您的回答。我要做的就是打印一个以 c++ 结尾的字符串。
  • @david 是同一个运算符:cout
  • 让我告诉我要打印的内容。除了mac地址。如果我尝试打印 szAdapterDescription 变量, printf("adapter description =%s \n",padapter->szAdapterDescription);输出是:{22199-323-92323} iam 输出正确,但如果我尝试使用 coutszAdapterDescription
  • 最好发布一个新问题。你的代码对我来说似乎是正确的,我不知道为什么它不起作用:(
【解决方案2】:
for (int i = 0; i < 6; ++i)
{
     cout << pAdapter->adapter[0].btMACAddress[i];
}
cout << endl;

这也与打印字节无关,而是与您无法正确使用 cout 有关。

【讨论】:

  • 感谢您发现我的无能 :)。我只是想知道 cout 将如何打印任何 tchar 定义的变量。这不是您尝试逐字节打印的方式。这就是我在 c 中所做的。
猜你喜欢
  • 1970-01-01
  • 2011-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多