Здравствуйте, гость ( Вход | Регистрация )
Гость_Андрей_* | Дата 28.3.2013, 12:14 |
Вот так описано использование в документации http://www.developer.nokia.com/Community/W..._integers_in_Qt
|
|
Гость | Дата 12.4.2012, 11:10 |
int randInt; QString myString; for(int i=0; i<5; i++) { randInt = qrand()%('Z'-'A'+1)+'A'; myString.append(randInt); } qDebug() << myString; |
|
eldar85 | Дата 9.4.2010, 21:36 |
да спасибо, подставил уже
и отлично все работает))) |
|
BRE | Дата 9.4.2010, 20:43 |
почему то такой код
при каждом новом запуске программы выдает одинаковое число... если прога работает в цикле то выдаст разных вариантов, но при новом запуске программы все эти варианты тут же начинают повторяться в том же диапазоне... получается вызвал я в цикле три раза, вышло три разных числа, закрыл прогу, запустил снова и снова теже три числа один в один... не подскажите как бороться с этим??? Посмотри на void qsrand ( uint seed ) |
|
eldar85 | Дата 9.4.2010, 20:32 |
почему то такой код
при каждом новом запуске программы выдает одинаковое число... если прога работает в цикле то выдаст разных вариантов, но при новом запуске программы все эти варианты тут же начинают повторяться в том же диапазоне... получается вызвал я в цикле три раза, вышло три разных числа, закрыл прогу, запустил снова и снова теже три числа один в один... не подскажите как бороться с этим??? |
|
ufna | Дата 9.4.2010, 12:32 |
ну "^" - битовый xor. Причем здесь вообще эта операция? Она не гарантирует, что результат будет обязательно меньше "b" |
|
eldar85 | Дата 9.4.2010, 10:00 |
не правельно? если не сложно подскажите что дает тогда операция "^" и "+"??)
спасибо, понял как работает, это получается будет вызываться любой из 25 символово после 65 в таблище ascii))) большое спасибо)) |
|
ufna | Дата 9.4.2010, 0:56 |
Вы неправильно используете операцию "^". К примеру: randInt2 = qrand()%48^57; что будет, если qrand() даст вам 5? Вам нужно что-то вида randInt2 = qrand()%25 + 65; |
|
eldar85 | Дата 9.4.2010, 0:42 |
не могу понять как написать так чтобы выходила кстрока типа dfkjgi49vjodj55 - ну что то вроде этого)) что нужно вставить в функцию в асистенте эта функция нифига не описана... может кто использовал и знает?хотелось бы чтобы узнать как установить длину рандомного выражения и чтобы можно было и числа и буквы чтобы выдавал)) вот тут вроде числа получаются, но как сделать чтобы и буквы были и длинну можно было регулировать
вот нашел как число получить например от 1 до 100
но опять же мне нужно чтобы одной длинны был код, к примеру 123456789 из 9 чмсел ну и буквы нужны... хорошо бы и чисто буквенный рандом найти... вот придумал как сделать рандом из пяти букв, блин но опять же проблема))) он еще с буквами и символы туда впихивает
в итоге такая шняга: "qXIzd" "}_T|O" "JJ{kL" вроде кодировку ascii поставил от 65 до 90, по идее должны же только большие латинские буквы выдаваться, а тут один хрен такая жопа... проблема косяков была в том что хоть и пишешь
а он один хрен то 115 выдаст, то еще что нить))) в общем выходит за границы между 65 и 90... пришлось сделать проверку на соответствие
в итоге пять нормальных чисел выдает)) "TFPHV" "MRWJP" "BSQNE" "SEWMP" "PAWYB" "AWKFJ" вот так вполне уникальная хреновина получается))
"O3I1V7M9F8" "V1K8R5S4R7" "N5H3B4M8I1" "E8F1G8W7E0" "O8F5C2E7R4" "T8I1W5M3H2" "G1I8J0B7W2" "E4S7F1N3C3" "H1O3G0O3C8" "B3I7J6G9M2" "L9K4W9M2R5" но тут такая махина получилась, может все же есть универсальная рандомная функция с которой не придется так мозг греть, а просто задать в нее параметры типа [a-zA-Z0-9] к примеру и указть сколько символов чтобы выдала... |
|
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 19.4.2024, 14:29 |