HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > ПРОГРАММИРОВАНИЕ > С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

  #2551  
Старый 18.03.2009, 19:41
jawbreaker
Участник форума
Регистрация: 07.07.2008
Сообщений: 161
Провел на форуме:
1027635

Репутация: 234
По умолчанию

Цитата:
Сообщение от awdrg  
На выходе всегда единичка =)
Это потому что в начале нужно было написать srand(1000) (не обязательно 1000)
 
Ответить с цитированием

  #2552  
Старый 18.03.2009, 19:45
awdrg
Участник форума
Регистрация: 30.01.2009
Сообщений: 196
Провел на форуме:
505362

Репутация: 66
Отправить сообщение для awdrg с помощью ICQ
По умолчанию

при разных значениях srand() появляются разные значения выходной переменной, но при повторном запуске программы они идентичны. Также одинаковые данные при помещении этого кода в тело цикла.
 
Ответить с цитированием

  #2553  
Старый 18.03.2009, 19:47
awdrg
Участник форума
Регистрация: 30.01.2009
Сообщений: 196
Провел на форуме:
505362

Репутация: 66
Отправить сообщение для awdrg с помощью ICQ
По умолчанию

нашел решение:
PHP код:
#include <iostream>
using namespace std;
main()
{
   
int a 0;
   for (
int i=0;i<10;i++)
   {
      
srand(i);
      
rand() % 21;
      
cout << << "\n";
   }
   return 
0;

за помощь спасибо
 
Ответить с цитированием

  #2554  
Старый 18.03.2009, 19:49
awdrg
Участник форума
Регистрация: 30.01.2009
Сообщений: 196
Провел на форуме:
505362

Репутация: 66
Отправить сообщение для awdrg с помощью ICQ
По умолчанию

Только не совсем понятно: как при повторном запуске программы наблюдать другие числа?
 
Ответить с цитированием

  #2555  
Старый 18.03.2009, 20:01
FoX's
Участник форума
Регистрация: 26.12.2004
Сообщений: 188
Провел на форуме:
1495357

Репутация: 107
Отправить сообщение для FoX's с помощью ICQ
По умолчанию

Цитата:
int i;
srand(time(0));
i=rand()%21 // 0-20
i=rand() // 0-0xfffffff
srand только 1 раз в начале
 
Ответить с цитированием

  #2556  
Старый 18.03.2009, 20:07
awdrg
Участник форума
Регистрация: 30.01.2009
Сообщений: 196
Провел на форуме:
505362

Репутация: 66
Отправить сообщение для awdrg с помощью ICQ
По умолчанию

Код:
i=rand();
ни к чему, все работает и так: =)
PHP код:
#include <iostream>
using namespace std;
main()
{
   
int a 0;
   
srand(time(0));
   for (
int i=0;i<10;i++)
   {
      
a=rand()%21;
      
cout<<a<<"\n"
   }
   return 
0;

 
Ответить с цитированием

  #2557  
Старый 19.03.2009, 20:23
_nic
Постоянный
Регистрация: 05.05.2006
Сообщений: 743
Провел на форуме:
2982851

Репутация: 107


По умолчанию

Вот нагуглил про AnsiString
Цитата:
Type Maximum length Memory required Used for
ShortString 255 characters 2 to 256 bytes backward compatibility
AnsiString ~2^31 characters 4 bytes to 2GB 8-bit (ANSI) characters
WideString ~2^30 characters 4 bytes to 2GB Unicode characters;
Я правильно понимаю что место под переменную типа AnsiString поумолчанию выделяется в куче?Если я допустим сделаю структуру в которой все члены будут типа AnsiString место под неё автоматически в куче выделится?Или есть какие то дополнительные ньюансы?
 
Ответить с цитированием

  #2558  
Старый 20.03.2009, 09:44
Fl0dER
Познающий
Регистрация: 22.12.2008
Сообщений: 82
Провел на форуме:
107509

Репутация: 6
По умолчанию

У меня вопрос , вот я не как не пойму .... Я с помощью sprintf формат текста делаю , для него обьявляю char buffer[512] ... Но как же мне узнать размер всего что я занес в buffer если я уже назначил 512 : ( пробывал char* data = buffer , и патом узнать размер ... Но не вышло :\ подскажи пожалуйста
 
Ответить с цитированием

  #2559  
Старый 20.03.2009, 09:55
FoX's
Участник форума
Регистрация: 26.12.2004
Сообщений: 188
Провел на форуме:
1495357

Репутация: 107
Отправить сообщение для FoX's с помощью ICQ
По умолчанию

Цитата:
sprintf returns the number of bytes stored in buffer, not counting the terminating null character.
мсдн :-)
 
Ответить с цитированием

  #2560  
Старый 20.03.2009, 12:00
ToniKapuchon
Участник форума
Регистрация: 26.02.2006
Сообщений: 209
Провел на форуме:
2418438

Репутация: 93
По умолчанию

Цитата:
Сообщение от Fl0dER  
У меня вопрос , вот я не как не пойму .... Я с помощью sprintf формат текста делаю , для него обьявляю char buffer[512] ... Но как же мне узнать размер всего что я занес в buffer если я уже назначил 512 : ( пробывал char* data = buffer , и патом узнать размер ... Но не вышло :\ подскажи пожалуйста
strlen(buffer)?
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Часто задаваемые вопросы по MySQL Серый PHP 5 28.12.2006 18:26
Интернетчики задали российскому президенту очень странные вопросы podkashey Мировые новости. Обсуждения. 4 07.07.2006 16:53
Вопросы по Ipb 2.0 Voodoo_People Уязвимости CMS / форумов 26 15.02.2005 22:57



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ