关于sscanf的工作原理.
/* 开发环境是bc3.1 */
#include <stdio.h>
#include <stdlib.h>
void main(void)
{
unsigned char t[10];
char * s = "1,2,3,4,5,6,7";
sscanf(s,"%d,%d,%d,%d,%d,%",&t[0],&t[1],&t[2],&t[3],&t[4],&t[5],&t[6]);
for(int i=0;i<7;i++)
{
printf("t[%d] = %d\n",i,t[i]);
}
}
/*输出结果
t[0] = 1
t[1] = 2
t[2] = 3
t[3] = 4
t[4] = 5
t[5] = 0
t[6] = 240
*/
我知道错误的原因是由于t的类型是unsigned char,但有人可以解释一下更深层次中的问题吗?
如果t的类型不能改变,又不想弄个中间变量来做,有什么好办法解决吗?