簡體   English   中英

我應該在這里使用什么格式說明符?

[英]What format specifier should I use here?

在此處獲得此代碼以打印出已打開文件的名稱(如果您想知道,它的高度為 map)並且每次我嘗試打印時都會收到格式警告,我應該使用哪種格式說明符?

    unsigned char* data = stbi_load("textures/height.png", &width, &height, &nr_components, 0);
    printf("Loaded file: %u\n", data);

如果您的目標是打印加載數據的地址,那將是%p

printf("Loaded file: %p\n", (void*)data);

如果你想逐字節打印實際數據,你應該遍歷字節並使用%hhu (十進制)或%hhx (十六進制):

printf("Loaded file:\n");
for(int i = 0; i < width*height*nr_components; ++i)
    printf("%hhx ", data[i]);
printf("\n");

data不包含文件的名稱,所以如果您只想打印名稱,則打印您傳遞給stbi_load的相同字符串:

const char *filename = "textures/height.png";
unsigned char* data = stbi_load(filename, &width, &height, &nr_components, 0);
printf("Loaded file: %s\n", filename);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM