Soo last year, if im not mistaken , i asked for help with the random numbers generator.
I didn't do C++ for quite some time, but i started again.
So here is what i have :

#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <ctime>
using namespace std;

int main(){
	srand(time(NULL));
	int random;
	ofstream outfile("C:\\Random.txt"); //Random as in you can put any file you want
	if (outfile.is_open())
        {
                for (int i = 0; i < 10; i++)
                {
					random=(rand()%100);
					outfile << i << ": " << random <<endl;
                }
	     }
        outfile.close();
        return 0;
}

The code is supposed to write 10 random numbers to a file. I know its noot good after the "for" part
because for now it only generates from 0-100.
Can someone help me with this code?
It supposed to generate random numbers between 0 and 32000 (not sure how much rand exactly is ) its somewhere around 32000-33000 i think i forgot it.

Tnx

Jackk123
Deleted Member

As is explained here, the maximum value for rand() (defined as RAND_MAX ) is implementation defined, but is at least 32767 for a compliant compiler and library.

As for how to get the specific range you want, you need to use a combination of modulo ( % ) and addition or subtraction. So, for a range of (say) 32,000 to 33,000, you would want a range size of 1000 and an offset of 32,000:

random = (rand() % 1000) + 32000;

Different ranges and offset can be easily selected from this basic pattern.

Edited 5 Years Ago by Schol-R-LEA: n/a

Thanks for answering
but what i want is

for it to generate from 0-32767
which is defined RAND_MAX , i couldn't get that to work.
I know how the range works.

rand()%RAND_MAX should generate [0,32767) meaning the number will never be 32767.

If you want it to include 32767 then just use rand()%(RAND_MAX+1).

So i put random=rand()%RAND_MAX or?

it works now , tnx

This question has already been answered. Start a new discussion instead.