用DevC++编译一个产生真随机数的程序
时间: 2023-04-09 21:04:38 浏览: 152
可以使用 srand() 和 rand() 函数来产生伪随机数,但是要产生真随机数需要使用硬件随机数生成器。在 DevC 中,可以使用 Windows API 函数 CryptGenRandom() 来获取真随机数。以下是示例代码:
```c
#include <windows.h>
#include <stdio.h>
int main()
{
HCRYPTPROV hProv;
BYTE randomBytes[4];
if (!CryptAcquireContext(&hProv, NULL, NULL, PROV_RSA_FULL, CRYPT_VERIFYCONTEXT))
{
printf("Error: CryptAcquireContext failed with error %d\n", GetLastError());
return 1;
}
if (!CryptGenRandom(hProv, sizeof(randomBytes), randomBytes))
{
printf("Error: CryptGenRandom failed with error %d\n", GetLastError());
CryptReleaseContext(hProv, 0);
return 1;
}
CryptReleaseContext(hProv, 0);
printf("Random number: %d\n", *((int*)randomBytes));
return 0;
}
```
阅读全文