如何将所有img文件夹添加到CImage数组元素?

时间:2013-06-06 08:47:21

标签: c++ bitmap opendir dirent.h

我遇到这个问题;( 我不知道如何将img添加到CImage数组元素中。 我想要做这些操作。↓

    image[0].Load(_T("./data/notice.bmp"));
    image[1].Load(_T("./data/11.bmp"));
    image[2].Load(_T("./data/22.bmp"));
    image[3].Load(_T("./data/13.bmp"));
    image[4].Load(_T("./data/25.bmp"));
    image[5].Load(_T("./data/7.bmp"));
    image[6].Load(_T("./data/16.bmp"));
    image[7].Load(_T("./data/20.bmp"));
    image[8].Load(_T("./data/18.bmp"));
    image[9].Load(_T("./data/3.bmp"));
    image[10].Load(_T("./data/8.bmp"));

我想将bmp文件添加到名为image的CImage数组中! 我想也许有一些方法可以立刻做到这一点。 :0 我在Google上找到了'dirent.h'。 但我不知道如何正确地使用它来完成我的工作..;(

    DIR             *d;
    struct dirent   *dir;
    CImage image[MAX_IMAGE];
    d = opendir("./data/");
    int i=0;

    if(d)
    {
            while ((dir = readdir(d)) != NULL)
            {
                    i++;
                    image[i] = *dir->d_name;
            }
            closedir(d);
    }

发生了一些错误

    image[i] = *dir->d_name;

如何修复它? ((

1 个答案:

答案 0 :(得分:0)

imageCImage类型的元素数组,dirent::d_name类型为char …[256]

这两个人没有聚在一起。我想你想要使用像

这样的东西
image[i].Load(dir->d_name);

但这仍然是相当糟糕的风格。您应该使用std::vector<CImage>std::list<CImage>代替。