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

时间:2016-03-19 18:44:00

标签: c++ c++11 random range output

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

我发现的大多数答案与此https://stackoverflow.com/a/19728404/5780938类似,我认为这是我正在寻找的解决方案。

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

目前我的代码看起来像这样:

#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 Community 2015。

1 个答案:

答案 0 :(得分:2)

您没有调用函数zufälligeZahl,而是打印出函数的地址。 通过实际调用函数来修复代码:

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

你忘记了括号。