2016-03-19 26 views
-2

C++ 'da küçük bir oyun oluşturmak istiyorum ve bu nedenle belirli bir aralıkta rastgele sayıları döndürmek için bir fonksiyona ihtiyacım var.mt19937 rasgele sayı aralığı - garip çıkış 00A8106E

Bulduğum cevapların çoğu bu bir https://stackoverflow.com/a/19728404/5780938'a benziyordu ve sanırım bu aradığım çözüm.

İşlevi yapıp yapmadığımı sınamak için, ne istediğimi test etmek için sonuçları farklı yollarla denedim. Şu anda

benim kod şöyle görünür:

#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; 
} 

Ben çok farklı şekillerde bu denedim ama hiçbir yaparsam yapayım, bu işe yaramaz. Çıktı 00A8106E gibi bir şey, yoksa hiç çıktı almıyorum.

Ben Visual Studio Topluluk 2015

cevap

2

Sen işlevini zufälligeZahl çağırarak değil, sen fonksiyonun adresini çıktısını alıyor kullanıyorum. aslında işlevini çağırarak kodunuzu Fix :

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

Sen parantez unuttum.

+0

Oh, lanet olsun, bu aptalca bir hataydı: (…) Garip olan şu ki, aslında farklı web sitelerinden çözümler kopyalamayı denedim ve hala işe yaramadı, sanırım bu beni daha da karıştırdı. cevabınız için çok! – Andy

İlgili konular