【发布时间】:2013-04-15 00:51:43
【问题描述】:
我正在尝试更改数组中的数据,这是我的代码的一部分:
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。一些在一分钟前删除它的研究员的答案可能是正确的:你可以扫描一个 int aka 4 Bytes/chars on each大端系统上的格式标识符。 -
啊,我的错,我没有发布完整的代码。在第一行和第二行之间,我将数据加载到该数组中。所以在 scanf 之前这些元素没有设置为 0,问题出在 scanf 上。
标签: c hex scanf unsigned-char