关于sprintf整合%d出错的问题

来源:互联网 发布:步步高i270软件下载 编辑:程序博客网 时间:2024/05/19 03:23

有些编译器用到sprintf函数整合%d类型的数据时候可能会出错例如

错误的示例

char *p[80]=0;memset(p,0,sizeof(p));sprintf((char *)p,"AT+CIPSTART=\"TCP\",\"%d.%d.%d.%d\",%d\r\n",210,209,82,119,8080);PrintString1(p);

输出的值为 : AT+CIPSTART=”TCP”,”-11567.21111.8080.0”,53

这是因为某些编译器不知道需要整合的数是什么类型导致的 所以需要加上强制转换类型才可以输出我们需要的答案
正确的方法

char *p[80]=0;memset(p,0,sizeof(p));sprintf((char *)p,"AT+CIPSTART=\"TCP\",\"%d.%d.%d.%d\",%d\r\n",(int)210,(int)209,(int)82,(int)119,(int)8080);PrintString1(p);

此时输出的是 :AT+CIPSTART=”TCP”,”210.209.82.119”,8080

1 0
原创粉丝点击