为什么random()在windows中不起作用?

时间:2018-01-24 14:36:00

标签: c++ random

为什么C ++ random()命令在Windows上不起作用?我在Ubuntu上使用random()命令创建了一个正在运行的程序。此命令生成随机整数。在线没有太多关于这个命令的信息。令我困惑的是代码不会以任何方式改变,并且在两个操作系统上使用相同的程序来运行代码。

这两个操作系统是否存在任何结构差异,禁止命令对其中一个进行操作?

简单代码:

#include <iostream>

using namespace std;

int main() {
    int r = 0;
    for (int i=0; i<25; i++){
        r = random();
        cout << r <<endl;

    }
}

2 个答案:

答案 0 :(得分:7)

来自stdlib.h的{​​{3}}函数实际上是POSIX函数,而不是C函数。因此,只保证在POSIX系统中可用,例如Linux。

如果您想要移植到其他C环境,请使用random()

或者,如果您使用C++作为标记建议,并使用不太旧的编译器,则可以使用rand()中的函数。

答案 1 :(得分:3)

random()和srandom()是POSIX的一部分,在Windows上不可用。  rand()和srand()是标准库的一部分,将由C ++的任何标准符合实现提供。

您可以使用在C ++ 11中实现的<random>