2016-03-19 28 views
-2

我想用C++創建一個小遊戲,因此我需要一個函數來返回特定範圍內的隨機數。mt19937隨機數範圍 - 奇怪的輸出00A8106E

我發現的大部分答案都與這個相似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 2015年社區

回答

2

你是不是調用該函數zufälligeZahl,要打印出函數的地址。 通過實際調用該函數修復代碼:

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

你忘了括號。

+0

哦,該死的,這是一個愚蠢的錯誤:(奇怪的是,我實際上試圖複製來自不同網站的解決方案,但它仍然沒有工作,我想這讓我更加困惑。很多爲您的答案! – Andy