ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

11.09.2007, 23:35
|
|
Banned
Регистрация: 11.08.2006
Сообщений: 1,522
Провел на форуме: 5128756
Репутация:
2032
|
|
Ni0x, а то, что значение переменной str не выводится в messagebox'e (пустое поле) это нормально? типа str2hex воркенг или нет?
|
|
|

11.09.2007, 23:42
|
|
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме: 2009677
Репутация:
472
|
|
Piflit, сама функция рабочая, давай ты скинешь мне полный код своего проекта в пм и я постараюсь помочь.
|
|
|

12.09.2007, 13:37
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме: 1845671
Репутация:
1338
|
|
Помогите разобраться с генерацией случайных чисел в MSVC++ v6.0 .
У Borland'a все понятно Randomize и Random(10, 20) - получаем от 10 до 20.
Как быть в VC++ ? srand() , rand() как получить числа от и до. ???
|
|
|

12.09.2007, 13:47
|
|
Познавший АНТИЧАТ
Регистрация: 12.05.2007
Сообщений: 1,235
Провел на форуме: 2238549
Репутация:
1318
|
|
А в чём сложность? Чем боры выделились в этом плане?
int main(void) {
int i;
time_t t;
srand((unsigned)time(&t));
printf("5 случайных чисел от 0 до 99 \n\n");
for (i=0; i < 5; i++) printf("%d\n", 0 + rand() % 100);
return 0;
}
|
|
|

12.09.2007, 17:04
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
srand() , rand() как получить числа от и до. ???
А чего, простите, непонятного?
rand() возвращает рандомное число, следовательно чтобы получить в интервале от A до B надо сделать:
A + rand() % (B-A+1)
|
|
|

12.09.2007, 17:07
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
Если тебе так неймется, то:
#define Randomize() srand(time(0)) или srand(GetTickCount()) по желанию
#define Random(A,B) ( (A) + rand() % ((B)-(A)+1) )
Randomize();
printf("Random value from 10 to 20: %d\n", Random(10,20));
|
|
|

12.09.2007, 18:25
|
|
Постоянный
Регистрация: 08.05.2006
Сообщений: 816
Провел на форуме: 1845671
Репутация:
1338
|
|
_Great_ Молодец, как всегда, показал высоты
srand((unsigned)time(&t));
printf("5 случайных чисел от 0 до 99 \n\n");
for (i=0; i < 5; i++) printf("%d\n", 0 + rand() % 100);
Вся проблема в том, что при каждом запуске программа выдает одну и туже последовательность случайных чисел. 
|
|
|

12.09.2007, 19:20
|
|
Постоянный
Регистрация: 03.02.2007
Сообщений: 520
Провел на форуме: 1777536
Репутация:
932
|
|
Код:
#include "time.h"
srand(time(NULL)); //создаём генератор
ИМХО: ранд\сранд - дерьмо. Тока добавляет размер к файлу + нелюбит /ENTRY:WinMain , я делаю так:
Код:
int rand = (GetTickCount())%1000 //получили рандомное 3-х значное число
Последний раз редактировалось Ky3bMu4; 12.09.2007 в 19:23..
|
|
|

12.09.2007, 20:00
|
|
Постоянный
Регистрация: 27.08.2006
Сообщений: 367
Провел на форуме: 2009677
Репутация:
472
|
|
ИМХО: ранд\сранд - дерьмо. Тока добавляет размер к файлу + нелюбит /ENTRY:WinMain
Ты вообще имеешь понятие о том, что делает ENTRY:WinMain ? rand/srand и не должны работать так, ведь это CRT. Вот неплохой пример:
Код:
// -----------[ random stuff ]-----------
// (c) drmist\STNC 2006
#include "windows.h"
#include <stdio.h>
unsigned long rs_randseed;
void _srand();
unsigned long _rand();
void _srand()
{
rs_randseed = GetTickCount();
}
unsigned long _rand()
{
rs_randseed++;
return (rs_randseed*0xF02CE551) + 0x7FF2742B;
}
int main()
{
int a;
_srand();
a=_rand();
char *pa;
printf("This: ",itoa(a,pa,10));
return 0;
}
// ^^^ ^^^
// -----------[ random stuff ]-----------
|
|
|

12.09.2007, 21:14
|
|
Флудер
Регистрация: 27.12.2005
Сообщений: 2,372
Провел на форуме: 5339610
Репутация:
4360
|
|
Ni0x, а память выделять для pa, видимо, уже не принято?
Пример, очевидно, стоит переписать:
Код:
int main()
{
int a;
char pa[10];
_srand();
a=_rand() % 1000;
printf("This: %s\n",itoa(a,pa,10));
return 0;
}
Последний раз редактировалось _Great_; 12.09.2007 в 21:17..
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|