c++ Rand函数错误
C++ Rand Function error
我正在尝试制作一个基于文本的角色扮演游戏,我目前正在实现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;
}
然而它输出的却是:
Try: cout << "Randomly generated number: " << RandNum;
您实际上是将数字添加到字符串…它的作用和你想的不一样。它实际上计算和地址偏移从字符串,我猜这就是为什么你在它的开始添加了一些空格。您可能需要流插入操作符<<
:
cout<< " Randomly generated number: " << RandNum;
此外,在您的随机数生成器中调用srand()
是一个坏主意。为什么?因为如果您快速调用它几次,time()
可能每次都返回相同的值,导致rand()
每次都以相同的值播种,因此给出相同的结果(又名不是非常随机)。在大多数情况下,应该在程序开始时调用一次srand()
。
一般不应该使用rand()和modulus。这是个坏习惯。相反,使用<random>
:http://www.cplusplus.com/reference/random/。或者搜索"c++随机头文件使用"或类似的东西
相关文章:
- 链接器错误:函数的多个定义
- 编译器错误:函数调用在常量表达式中必须有一个常量值
- 错误:函数声明符之后的预期函数体
- C 错误 - 函数不能超载
- 如何修复传递参数时调用错误函数的主函数?(C++)
- 错误:函数调用中有两个参数
- 错误:函数不是“类”的静态数据成员 - C++
- C ,G 编译错误函数
- CMake 解析错误函数缺少结尾")"。而是找到带有文本的未终止字符串")
- C++ 错误 函数 2 的多重定义
- 错误:函数调用中从int到int(*)[4]的转换无效
- C++14 自动扣除错误:函数返回一个数组
- 视觉C++错误:函数必须返回一个值
- 错误:函数声明中的两种或多种数据类型
- 错误:函数未在作用域中声明
- rtw_android.c错误:函数“strnicmp”的隐式声明[-Weror=隐式函数声明]
- 错误:函数中的return语句没有值,返回“void*”[-fpermission]
- 简单程序中的链接器错误:函数的多重定义
- 错误:函数参数太多
- 错误:函数__tmaincrtstartup中引用的未解析的外部符号_main