将 d,ok两个都是unsigned char类型的数据插入到字符串中,但是当数据大于6个的时候,第六个之后的数据都会显示不出来,显示乱码,在C51环境中编译运行的结果;
sprintf(buf,"t1.txt=\"%c%u-%c%u-%c%u-%c%u-\"", d , (int)ok , d , (int)ok , d , (int)ok , d , (int)ok) ;
这是什么原因
buf[]缓冲区的大小是足够的,我设置了200个字节大小,buf缓冲区为unsigned char类型
我想得到一个 “ t1.txt="%c%u-%c%u-%c%u-%c%u- " " 的字符串,里面有许多的变量是不确定的,需要把他格式化插入到字符串中
不是很懂,但是还是凑个热闹!希望大家更好!
1,看一下buf定义在那个存储区域的,200字节也挺长的,看看有没有超出所在存储区域的范围。
2,可能是参数太多导致栈溢出。
1 OK 和 d 的值是什么,检查是否符合规则
2 buf 存储区是否溢出,使用前 清空试试