Пытаюсь получить строку из случайных букв: Код (Text): void randstr(int leng,char *_out) { if(leng<1025 && leng>0) { char *out=new char[1024]; char *chr; memset(out,NULL,1024); char alphabet[]="QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm"; for(int i=0;i<leng;i++) { //srand(time(0)); srand(GetTickCount()); wsprintf(chr,"%c",alphabet[rand() % (strlen(alphabet)-1)]); strcat(out,chr); //MessageBox(0,chr,"!",MB_OK); } strcpy(_out,out); delete []out; } } Да вот только в цикле(если без задержек) всегда вылазит одно и то же число.Как можно исправить?
В каждом шаге цикла ты инициализируешь рандомайзер с помощью текущего времени. А так как твой цикл у тебя выполняется очень быстро, то на каждом шаге цикла текущее время одинаковое вплоть до секунды, поэтому у тебя генерируется всегда одна и та же последовательность. Это раз. Второе - инициаилизировать рандомайзер нужно всего лишь раз, перед циклом.