저는 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]);
}
덕분에, 난 그냥 당신은 int 값이 어떻게 든 유형 캐스트에 의해 ASCII로 변환 한 것으로 가정합니다 지금 buffer[pos+i] = v[i];
어떻게 '버퍼'가 정의 되었습니까? '& v [i]'는 잘못된 일을하고있는 것처럼 보입니다.'v'의 포인터를'i'의 위치에 억세스하고 그 포인터를 그 위치로 가져가는 이유는 무엇입니까? – nrathaus
함수'sscanf'는 실제 문자열을 첫 번째 인수로 기대합니다. – cnicutar
'buffer'는 char *입니다. 그러나 sscanf ("0f", "% 02x", & buffer [pos + i])와 같은 실제 문자열을 사용하면 괜찮습니다. 대신 어떤 기능을 사용해야합니까? – enigma99a