mt19937 随机数范围 - 奇怪的输出 00A8106E

mt19937 random number range - weird output 00A8106E

我想用 C++ 创建一个小游戏,因此我需要一个函数来 return 特定范围内的随机数。

我找到的大部分答案都与这个答案相似 ,我认为这就是我正在寻找的解决方案。

为了测试函数是否正常运行,我想要它做什么,我尝试以几种不同的方式输出结果。

目前我的代码如下所示:

#include "stdafx.h"
#include <iostream> 
#include <random>


int zufälligeZahl();

int main()
{
using std::cin;
using std::cout;

cout << zufälligeZahl << "\n";
cout << zufälligeZahl << "\n";
cout << zufälligeZahl << "\n";
cout << zufälligeZahl << "\n";

return 0;
}

int zufälligeZahl()
{
std::random_device rd;
std::mt19937 zGenerator(rd());
std::uniform_int_distribution<int> uni(1, 13);

int random_integer = uni(zGenerator); 

return random_integer; 
} 

我试过很多不同的方法,但无论我做什么,它都不起作用。要么输出类似于 00A8106E,要么我根本没有得到任何输出。

我正在使用 Visual Studio 社区 2015。

你不是在调用函数zufälligeZahl,你是在打印函数的地址。 通过实际调用函数修复您的代码:

 cout << zufälligeZahl() << "\n";

你忘了括号。