为什么 printf 打印字符串会在结尾多出一个数字?

首先在某个头文件中定义:

#define VID "0483"
#define PID "5740"
#define USB_ADDR  printf("USB\\VID_%s\&PID_%s",VID,PID)

目的是方便根据USB设备的VID和PID组合成的地址来寻找串口设备(USB虚拟串口),

但是输出有些异常,在结尾会多出一个21的数字
调用代码:

cout << "USB_ADDR:";
cout << USB_ADDR;
cout << endl;

出来的结果是这样的:
USB_ADDR:USB\VID_0483&PID_574021
但是期待的结果不应该是这样子吗?:
USB_ADDR:USB\VID_0483&PID_5740

请问为何结尾会多出个21?

cout输出结果

阅读 3.5k
1 个回答
cout << printf("USB\\VID_%s\&PID_%s",VID,PID); ...是什么操作?
printf("USB_ADDR:USB\\VID_%s\&PID_%s\n",VID,PID);就可以了

21是printf的返回值,建议先找本书看一下

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题