CodeGuru Home VC++ / MFC / C++ .NET / C# Visual Basic VB Forums Developer.com
+ Reply to Thread
Results 1 to 6 of 6

Thread: Random numbers

  1. #1
    Join Date
    Jan 2004
    Location
    Punjab, India
    Posts
    113

    Random numbers

    hi!
    I am using the following code to generate a random string. But each time i get the same string output. Can anyone help.

    char myarray[22];
    char* CGeneratorApp::GenerateString()
    {
    myarray[21]='\0';
    for(int k=0;k<21;k++)
    {
    myarray[k] = (char)(((int)rand()%25)+65);
    }

    char first[2];
    intUsed++;

    sprintf(first,"%d",intUsed);

    if(intUsed<10)
    {
    first[1]=first[0];
    first[0]='0';
    }

    first[0]=(char)((int)first[0]+27);
    first[1]=(char)((int)first[1]+27);

    myarray[8]=first[0];
    myarray[10]=first[1];

    AfxMessageBox(myarray);

    return myarray;
    }

    Thnx in advance

  2. #2
    Join Date
    Oct 2002
    Location
    Singapore
    Posts
    3,128
    You need to initialize the random seed using srand() before calling rand(). e.g. srand(clock());

  3. #3
    Join Date
    Jun 2002
    Location
    Germany
    Posts
    1,557
    Here is a related post which offers additional, useful information.

    Sincerely, Chris.



    http://www.codeguru.com/forum/showth...hreadid=281630
    You're gonna go blind staring into that box all day.

  4. #4
    Join Date
    Jan 2004
    Location
    Punjab, India
    Posts
    113

    Thnx Everybody

    Thnx Everybody,
    U were of quite good help.

  5. #5
    Join Date
    Dec 2001
    Location
    Greece, Athens
    Posts
    1,015
    Originally posted by Kheun
    You need to initialize the random seed using srand() before calling rand(). e.g. srand(clock());
    Indeed, you need to call srand(), but not using clock(), because clock() will (possibly) return the same number, so the random seed will be initialized in the same way. A better way is to call srand like this:
    Code:
    srand( (unsigned)time( NULL ) );
    Theodore
    Personal Web Page (some audio segmentation tools): www.di.uoa.gr/~tyiannak

  6. #6
    Join Date
    Jun 2002
    Location
    Germany
    Posts
    1,557
    Indeed,

    Some developers even seed rand using some sort of a high-frequency ticker in the system, for example the time-stamp-counter in Pentium systems.

    I think that this is described in some other posts such as the link in my other response above.

    Sincerely, Chris.

    You're gonna go blind staring into that box all day.

+ Reply to Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts



HTML5 Development Center

Click Here to Expand Forum to Full Width