编译器给出warning,说明你的代码有问题。 sprintf(buf, " ", (line)+1, (item));}, 没有指定格式符,却使用了2个参数 snprintf(strtmp, sizeof(strtmp), ">\000");//此行报警告, 字符串本来就包含结束符\0,为什么你还要加上\000 sprintf(string1, string2, string4, WaiShe[0],OutDeviceTypeData[id]);//此行报警告 WaiShe[0]是 char类型,你却指定格式符 %d OutDeviceTypeData[id] 是char型,你却指定%s