我正在學習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