0

我正在尝试访问指定文件夹中的所有图像,获取它们的名称,然后将它们传递给进一步处理(准确地说,获取它们的像素值,但这现在不相关)。下面的测试代码应该列出找到的每个图像的名称,但是,由于某种原因,它只列出了每个图像的第一个字母。

#include <windows.h>

int main(int argc, char* argv[])
{
WIN32_FIND_DATA search_data;

memset(&search_data, 0, sizeof(WIN32_FIND_DATA));

HANDLE handle = FindFirstFile(L"images\\*.jpg", &search_data);

while(handle != INVALID_HANDLE_VALUE)
{
  printf("Found file: %s\r\n", search_data.cFileName);

  if(FindNextFile(handle, &search_data) == FALSE)
    break;
}

return 0;
}
4

1 回答 1

1

您的程序是为 Unicode 编译的,但您的 printf 格式字符串需要一个 ASCII 字符串。将 %s 更改为 %S。

于 2013-05-18T13:58:15.977 回答