我正在使用C ++开发一个对象检测应用程序。并且我存储了每个假阴性图像,所以我需要一个随机文件名生成器,它不应该复制它们。
我目前正在使用Cannot index array with string "foo"
,但它并不保证唯一性,因此文件可能会被覆盖,因为所有文件都存储在同一个文件夹中。
我正在寻找生成唯一文件名的任何其他方法。
答案 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
希望这有帮助。