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";
你忘了括号。
我想用 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";
你忘了括号。