我正在尝试制作基于文本的角色扮演游戏,我目前正在实施diceroll功能:
int diceRoll(){
int n;
srand(time(0));
n = rand() % 4;
return n;
}
int main()
{
int RandNum = diceRoll();
cout<< " Randomly generated number: " + RandNum;
return 0;
}
然而它输出了这个:
答案 0 :(得分:5)
尝试:cout << "Randomly generated number: " << RandNum;
答案 1 :(得分:4)
您实际上是在字符串中添加数字...这不符合您的想法。它实际上是计算和解决字符串的偏移量,我猜是为什么你在它的开头添加了一些空格。您可能想要流插入运算符<<
:
cout<< " Randomly generated number: " << RandNum;
此外,在随机数生成器中调用srand()
是个坏主意。为什么?因为如果你快速调用它很多次time()
每次都可以返回相同的值,导致rand()
每次都以相同的值播种,从而得到相同的结果(也就是说不是很随机) 。在大多数情况下,您应该在程序开头调用srand()
一次。
答案 2 :(得分:1)
你一般不应该使用rand()和模数。这是一个坏习惯。相反,请使用<random>
:
http://www.cplusplus.com/reference/random/.
或者只是google&#34; c ++随机标题用法&#34;或类似的东西。