c++ - 在 C++ 中每次生成相同的随机字符

标签 c++

<分区>

我正在尝试编写一个代码来返回随机字符,所以我编写了以下代码:

static char prepare-data()
{
    Sleep(rand()%500); // sleep random amount
    int n = rand()%26;
    char c = (char)(n+65);
    return c; // return random character
}

static void writer()
{
    int i, writePt = 0;
    char data;
    for (i = 0; i < data_length; i++)
    {
        data = preparedata(); // go off & get data ready
        buffers[writePt] = data; // put data into buffer
        cout<<"writer thread: buffer["<<writePt<<"]="<<data<<endl;
        writePt = (writePt + 1) % num_total_buffer;
    }
}

但每次我运行代码时,我都会得到相同的字符 这算是问题吗

最佳答案

也许你想添加

/* initialize random seed: */
  srand (time(NULL));

在使用 rand() 之前

关于c++ - 在 C++ 中每次生成相同的随机字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22678885/

相关文章:

c++ - 友元函数 - 声明顺序

c++ - 重载解析如何在 private 修饰符的上下文中工作?

c++ - 使用 Qt 检测和打印 Unicode 字符

C++ 将 const 引用分配给实例变量(内存问题?)

c++ - C++ 11 mersenne_twister_engine 类的问题

c++ - 多处理浏览器?

c++ - 如何在不从输入 C++ 复制的情况下引用最长的 vector ?

c++ - 在 bazel 中替代 "` --whole-archive`"

c++ - 如何检查 union 是否包含类型(使用 type_traits)?

c++ - Qt:我应该什么时候使用 Q_DECLARE_METATYPE?