Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Софт виснет // генератор паролей 
V
    Опции темы
VOX
Дата 22.6.2009, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 21.1.2009

Репутация: 1
Всего: 1



Код

int num;
    int i=1;
    srand(time(NULL));
    char char_arr[64]={"zAyBxCwDvEuFtGsHrIqKpLoMnNmOlPkQjRiShTgUfVeWdXcYbZa1928374560!-"};
    while (i==1)
    {
    num = StrToInt (Edit1->Text);
    for (int i=0; i<num; i++)
    Label1->Caption = (char_arr[rand() % 63]);
    }

    }


Сабж, виснет, подскажите что не так?
PM MAIL   Вверх
mrbrooks
Дата 22.6.2009, 10:36 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



Цитата(VOX @  22.6.2009,  10:32 Найти цитируемый пост)
Сабж, виснет, подскажите что не так? 

бесконечный цикл
PM MAIL   Вверх
VOX
Дата 22.6.2009, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 21.1.2009

Репутация: 1
Всего: 1



в едите ввожу пятерку, ведь он должен остановиться...
PM MAIL   Вверх
Dmi3ev
Дата 22.6.2009, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



Цитата

в едите ввожу пятерку, ведь он должен остановиться... 

почему?  smile

Добавлено через 1 минуту и 20 секунд
вот этот создает бесконечность:
Цитата

while (i==1)

а не
Цитата

for (int i=0; i<num; i++)

он-то, ясен пень, кончится...


--------------------

PM MAIL   Вверх
mrbrooks
Дата 22.6.2009, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



VOX,  smile 
PM MAIL   Вверх
azesmcar
Дата 22.6.2009, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


uploading...
****


Профиль
Группа: Участник Клуба
Сообщений: 6291
Регистрация: 12.11.2004
Где: Армения

Репутация: 6
Всего: 211



VOX

Обратите внимание на то что во втором цикле for ваш обявленный int i перекрывает верхний.
Код

int i = 1;
while (i == 1)
{
    //тут i == 1
    for (int i = 0; i < 10; ++i)
    {
             //тут i меняет значение от 0 до 9
    }
    //тут i == 1
}

i в первом цикле и во втором - разные.


Это сообщение отредактировал(а) azesmcar - 22.6.2009, 10:53
PM   Вверх
Данкинг
Дата 22.6.2009, 10:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 11
Всего: 130



Цитата(VOX @  22.6.2009,  11:32 Найти цитируемый пост)
что не так? 

Одна и та же переменная в разных циклах - это уже "не так". smile 


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
VOX
Дата 22.6.2009, 10:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 21.1.2009

Репутация: 1
Всего: 1



Код

void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int num;
    int i=1;
    AnsiString str;
    srand(time(NULL));
    char char_arr[64]={"zAyBxCwDvEuFtGsHrIqKpLoMnNmOlPkQjRiShTgUfVeWdXcYbZa1928374560!-"};
    num = StrToInt (Edit1->Text);
    for (int i=0; i<num; i++)
    {
    str += (char_arr[rand() % 63]);
    }
    Label1-> Caption =  str;

    }


сделал так, спасибо!
PM MAIL   Вверх
Dmi3ev
Дата 22.6.2009, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 16
Всего: 41



Цитата

Label1->Caption = (char_arr[rand() % 63]);

эта строка тоже достаточно чудна, из массива случайным образом берется символ и запихивается в Label1, т.е. получается что в нем будет только символ, полученный последним... нах такое нужно??? я не понял  smile 
Может, автор хотел получить весь пароль, а не 1 символ...

Добавлено через 30 секунд
Цитата

    for (int i=0; i<num; i++)
    {
    str += (char_arr[rand() % 63]);
    }
    Label1-> Caption =  str;


вот, так пойдет


--------------------

PM MAIL   Вверх
VOX
Дата 22.6.2009, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 297
Регистрация: 21.1.2009

Репутация: 1
Всего: 1



На данный момент, сколько ввожу в едит 1 - из такого кол-ва знаков пароль и получается.
Т.к. всё неплохо работает

Добавлено через 7 минут и 4 секунды
Dmi3ev - на 4 минуты раньше всё же дошло )))
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0519 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.