我想在阵列,以改变数据SCANF无符号的字符,这是我的代码部分:十六进制
u_char paket[100];
//here i put some data into array and then trying to change it by user
scanf("%hhx.%hhx.%hhx.%hhx.%hhx.%hhx", &paket[0], &paket[1], &paket[2], &paket[3], &paket[4], &paket[5]);
当我输入的是例如88.88.88.88.88.88
它设置paket[0] - paket[5]
到88,但它也改变paket[6],
paket[7]
和paket[8]
设置为0.
怎么可能以及如何修复它?我只需要改变[0] - [5]
你'u_char'数组的声明可能会初始化所有元素0.一些研究员的答案是删除它一分钟前的答案或许是对的:你可能在一个Big-endian系统的每个格式标识符上扫描int aka 4个字节/字符。 – collapsar 2013-04-22 07:44:18
啊,我的错,我没有发布整个代码。在第一行和第二行之间,我将数据加载到该数组中。所以在scanf之前,这些元素没有设置为0,问题在于scanf。 – user2306381 2013-04-22 07:47:39