在C ++中生成随机文件名

时间:2015-12-08 20:16:08

标签: c++ opencv random filenames

我正在使用C ++开发一个对象检测应用程序。并且我存储了每个假阴性图像,所以我需要一个随机文件名生成器,它不应该复制它们。

我目前正在使用Cannot index array with string "foo",但它并不保证唯一性,因此文件可能会被覆盖,因为所有文件都存储在同一个文件夹中。

我正在寻找生成唯一文件名的任何其他方法。

1 个答案:

答案 0 :(得分:1)

我建议使用GUID' s。如上所述,它们不是100%保证,但为了您的目的,它们可能会很好。

我附上了代码:

#include <Windows.h>
#include <iostream>
#include <objbase.h>

int main()
{
    GUID guid;
    CoCreateGuid(&guid);

    printf("%08lX-%04hX-%04hX-%02hhX%02hhX-%02hhX%02hhX%02hhX%02hhX%02hhX%02hhX",
        guid.Data1, guid.Data2, guid.Data3,
        guid.Data4[0], guid.Data4[1], guid.Data4[2], guid.Data4[3],
        guid.Data4[4], guid.Data4[5], guid.Data4[6], guid.Data4[7]);
    system("pause");
    return 0;
}

这将返回唯一名称32 hex digits grouped into chunks of 8-4-4-4-12

在我的机器上运行代码后,它提供了一个GUID:CAF9B27A-AA9E-46DE-9966-C3EDBE5D674F

希望这有帮助。