我是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的数字。

09-09 19:20