我是C ++新手。我想生成一个随机的字符串序列,供我的程序使用。它在大多数情况下都起作用,但是偶尔它的行为不当并从计算机内存中转储随机字符串。我犯了什么愚蠢的错误(如果有)?
代码如下:
#include <iostream>
#include <ctime> // Needed for the true randomization
#include <cstdlib>
#include <string>
using namespace std;
int main ()
{
string holder[] = {"A", "B", "C", "D", "E"};
int xRan;
srand(time(0)); // This will ensure a really randomized number by help of time.
xRan=rand()%6+1;
xRan--;
cout << "Value of xRan is: " << xRan << " value is " << holder[xRan] << endl;
return 0;
}
最佳答案
您的xRan计算得出的数字是1到6。您的数组有5个元素,编号为0到4。
将xRan=rand() % 6 + 1;
更改为xRan=rand() % 5;
,然后删除递减xRan
的下一行。您会得到一个从0到4的数字。