Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> как прогу усыпить на несколько милисекунд??? 
:(
    Опции темы
Guest
Дата 7.12.2004, 17:43 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











сабж??
  Вверх
sergejzr
Дата 7.12.2004, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



На линуксе функция sleep(seconds);
На windows'е Sleep(milliseconds*1000);
На windows'e время передаётся в миллисекундах, на линуксе в секундах.

Вот так обходим:

Код

/*
Пожалуйста ссылайтесь на www.vingrad.ru :)
http://vingrad.ru/@sergej.z
*/
#include <stdio.h>
#ifdef _WIN32
#include <windows.h>
#else
#include <unistd.h>
//Теперь и на юниксе будет Sleep в миллисекундах как на винде
void Sleep(int millisec){sleep(millisec/1000);}
#endif

int main()
{
printf("do \n");
//ждём 5 секунд или 5000 милисекунд
Sleep(1000*5);
printf("posle \n");
return 0;
}



--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Mad
Дата 7.12.2004, 18:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Эксперт
Сообщений: 656
Регистрация: 18.10.2004
Где: Одесса

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



Цитата(sergej @ 7.12.2004, 16:57)
На линуксе функция sleep(long);

Если мс, то не sleep() a usleep()


--------------------
user posted image
PM MAIL   Вверх
S.A.P.
Дата 7.12.2004, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А что означает усыпить? Может ему заблокировать ввод надо?
PM MAIL   Вверх
Guest
Дата 7.12.2004, 19:46 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











мне надо пол секунды ждать.
sleep(500/1000); ждет 0 сек.
вообщето надо на ДОСе
  Вверх
sergejzr
Дата 7.12.2004, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



полсекунды это в моём коде 500 smile

А не идёт не из-за доса!
Знаете сколько 500/1000 в интегерах ? 0! smile
Фунцкция получает интегер(только позитивный), а это значит значения от 0,1,2....
значение 1: -1 милисекунда
значение 1000: - 1 секунда
итд. smile

Код

int main()
{
printf("do \n");
//ждём полсекунды или 500 милисекунд
Sleep(500);
printf("posle \n");
return 0;
}


Удачи smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Guest
Дата 7.12.2004, 21:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











чтото я не понял
ф-ия Sleep() в вашем коде делит 500 на 1000 = 0
вот мой код (для ДОС):

Код

#include <stdio.h>

int main(void)
{
printf("helo");
sleep(500);       //ждет 500 сек     sleep(500/1000);     ждет 0 сек
printf("bye");
}

как сделать штоб ждал 0,5 сек так и не понял smile
  Вверх
sergejzr
Дата 7.12.2004, 21:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Она там для юникса делит smile

Вот возмите код и запустите у себя smile

Код

/*
Пожалуйста ссылайтесь на www.vingrad.ru :)
http://vingrad.ru/@sergej.z
*/
#include <stdio.h>
#ifdef _WIN32
#include <windows.h>
#else
#include <unistd.h>
//Теперь и на юниксе будет Sleep в миллисекундах как на винде
void Sleep(int millisec){sleep(millisec/1000);}
#endif

int main()
{
 printf("do \n");
 //ждём полсекунды или 500 милисекунд
 Sleep(500);
 printf("posle \n");
 return 0;
}


А вариант только для виндовс вообще тривиальный smile
Код

#include <stdio.h>
#include <windows.h>
int main()
{
 printf("do \n");
 //ждём полсекунды или 500 милисекунд
 Sleep(500);
 printf("posle \n");
 return 0;
}

Удачи


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Guest
Дата 7.12.2004, 22:17 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











ни один из двух кодов не компилиться т.к. компилю под дос а там ни windows.h ни unistd.h нету
  Вверх
sergejzr
Дата 7.12.2004, 22:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Я под дос не знаю smile

А какого нибудь "dos.h" там нет?
Добавлено @ 22:33
Попробуйте не sleep, а delay(500);

У Вас борланд компилер, если я правильно понял...
Добавлено @ 22:33
Там и dos.h есть smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
Guest
Дата 7.12.2004, 22:57 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











dos.h есть delay() тоже. smile
всё нормально работает спасибо smile
  Вверх
bel_nikita
Дата 7.12.2004, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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



Цитата
мне надо пол секунды ждать.
Цитата
ни один из двух кодов не компилиться т.к. компилю под дос а там ни windows.h ни unistd.h нету

sergej.z
под дос'ом delay(500)
объявлен в <dos.h>


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
sergejzr
Дата 7.12.2004, 23:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Un salsero
Group Icon


Профиль
Группа: Админ
Сообщений: 13285
Регистрация: 10.2.2004
Где: Германия г .Ганновер

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



Уважаемый Guest , очень рады были помочь smile. Оставайтесь у нас на форуме smile После регистрации Вам откроются новые возможности!

Надеюсь Вам здесь понравится smile
Сергей
---------------------------
bel_nikita, чего-то в этот раз ты долго отвечал smile
см:
Цитата(sergej @ 7.12.2004, 21:31)

Попробуйте не sleep, а delay(500);
У Вас борланд компилер, если я правильно понял...
Добавлено @ 21:33
Там и dos.h есть smile


smile smile


--------------------
PM WWW IM ICQ Skype GTalk Jabber AOL YIM MSN   Вверх
bel_nikita
Дата 7.12.2004, 23:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Эксперт
Сообщений: 2304
Регистрация: 12.10.2003
Где: Поезд №21/22 ( ст . Прага )

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



smile
sergej.z
так кушать хоцца smile
пошел покушал. потом пришел и доделал начатое smile а тут бац, и ответов полно уже smile


--------------------
user posted image — регистрация доменов от 150 руб.
PM MAIL WWW ICQ   Вверх
En_t_end
Дата 8.12.2004, 11:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



delay(%%%);
|| Интересно, а как перебороть эффект полного замораживания Sleep'ОМ ???
Sleep(%%%);

Допустим :

void main
{
cout << "do \n";
Sleep(2000);
cout << "posle \n";
return 0;
}
Будет работать не как ожидалось : Сначало произойдёт заморозка всей программы на 2 секунды, а потом :
do
posle

Пробывал уже и сам Sleep() и отдельные элементы вместе с ним переносить в отдельную функцию : ничего не помогает, короче бросил, и понял smile smile - Значит дело не в руках... Теперь таймеры в отдельных потоках юзаю...
Делэй в борланде такого не вытворяет...
PM MAIL ICQ Skype GTalk Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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