我正在学习C语言,有些东西我无法弄清楚sscanf。打印到缓冲区时,没有任何数据正在写入,并且它们始终以-1失败。如果你看到第二个printf语句,我可以在屏幕上清晰地查看我的数据,所以我知道它是正确的,但由于某种原因,指针没有任何内容。sscanf写入不正确
这是我的代码片段。
char *v = (char*)&int_value;
int i;
for(i=0;i<sizeof(unsigned int);i++)
{
printf("sscanf success: %d ", sscanf(&v[i], "%02x", &buffer[pos+i]));
printf("%02x\n", v[i]);
}
谢谢,我只是按字节做字节现在buffer[pos+i] = v[i];
'buffer'是如何定义的?还有'&v [i]'似乎在做错误的事情,它会在'i'位置访问'v'的指针,然后把指针指向那个位置,为什么? – nrathaus
函数'sscanf'需要一个实际的字符串作为第一个参数。 – cnicutar
'buffer'是一个char *。但是如果我确实使用'sscanf(“0f”,“%02x”,&buffer [pos + i])这样的实际字符串,那么它会写得很好。我应该使用什么函数呢? – enigma99a