Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 365, средняя оценка - 4.68
JM007
1 / 1 / 0
Регистрация: 04.04.2010
Сообщений: 57
#1

Функция sleep() - C++

21.04.2010, 09:40. Просмотров 58932. Ответов 12
Метки нет (Все метки)

Добрый день!
Помогите мне пожалуйста:
Создать функцию sleep(), приостанавливающая работу компьютера на столько секунд, сколько указано в аргументе функции. Перегрузите функцию sleep(),так чтобы она могла вызываться или с целым или со строкой задающее время.
Пример: остановка на 10 сек.
Sleep(10);
Sleep(“10”);
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2010, 09:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Функция sleep() (C++):

функция Sleep() ? - C++
Кто знает , какое значение точно нужно указывать что ты бы единица отчета соответствовала секунде? Я ставлю Sleep(70), но решил...

функция sleep() - C++
Создайте функцию sleep(), приостанавливающую работу компьютера на столько секунд, сколько указано в аргументе функции. Перегрузите sleep()...

Sleep - C++
Пишу пакмэна , нужно что бы пакмен бегал быстрее чем приведение как это сделать?? пробовал написать так но работает все с одной...

sleep в с++ - C++
Скажите, есть программа на с++, в ней используется функция sleep. Вроде все правильно, но выдает ошибку: Function 'Sleep' should have a...

Sleep в C++ - C++
Функция Sleep() останавливается при считывания символа с клавиатуры. Мне нужно создать программу которая будет случайно генерировать a и b...

фуекция sleep - C++
Программирую под Linux g++; Задали задание найти реализацию функции sleep. Нашёл только header unistd.h, там только реализация, где можно...

12
Hell Knight
230 / 60 / 3
Регистрация: 11.03.2010
Сообщений: 290
21.04.2010, 09:52 #2
у меня получилось только так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <windows.h>
 
using namespace std;
 
void Sleep(BYTE time)
{
    Sleep((DWORD)time*1000);
    return;
}
 
int main()
{
    cout << "Hello ";
    Sleep((BYTE)10);
    cout << "World !\n";
    system("pause");
    return 0;
}
1
JM007
1 / 1 / 0
Регистрация: 04.04.2010
Сообщений: 57
22.04.2010, 06:40  [ТС] #3
А как сделать в виде перегрузки?
0
Hell Knight
230 / 60 / 3
Регистрация: 11.03.2010
Сообщений: 290
22.04.2010, 10:19 #4
ааа...
так тебе нужен еще вариант с апргументом ввиде строки ?
0
JM007
1 / 1 / 0
Регистрация: 04.04.2010
Сообщений: 57
22.04.2010, 11:18  [ТС] #5
Ну да...
0
Hell Knight
230 / 60 / 3
Регистрация: 11.03.2010
Сообщений: 290
22.04.2010, 11:31 #6
хорошо...
попробую сделать...

Добавлено через 5 минут
ну вот
доделал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
#include <windows.h>
 
using namespace std;
 
void Sleep(BYTE time)
{
    return Sleep((DWORD)time*1000);
}
 
void Sleep(char * str)
{
    return Sleep((DWORD)atoi(str)*1000);
}
 
int main()
{
    cout << "Hello ";
    Sleep((BYTE)10);
    cout << "World !\n";
    cout << "Hello ";
    Sleep("10");
    cout << "World !\n";
    system("pause");
    return 0;
}
2
Humanoid
Почетный модератор
9870 / 3769 / 173
Регистрация: 12.06.2008
Сообщений: 11,175
22.04.2010, 11:47 #7
Я плохо знаю Си, поэтому могу ошибаться. Но мне кажется, что внутри функции Sleep обращение к sleep должно быть маленькими буквами... иначе будет бесконечная рекурсия. Ведь, внутри Sleep мы обращаемся к API функции sleep. И вообще, называть так функции лично на мой взгляд не очень хорошо... ведь так можно перепутать Sleep и sleep
0
Hell Knight
230 / 60 / 3
Регистрация: 11.03.2010
Сообщений: 290
22.04.2010, 11:52 #8
это перегрузка функции, так задано условие
а рекурсии не будет потому что моя функция принимает параметр BYTE, а вторая CHAR
а сама WinAPI принимает DWORD

Добавлено через 1 минуту
я тестировал! всё работает хорошо
1
JM007
1 / 1 / 0
Регистрация: 04.04.2010
Сообщений: 57
28.04.2010, 10:00  [ТС] #9
А что означает вот это:
(DWORD)time*1000
(DWORD)atoi(str)*1000

Добавлено через 40 минут
подскажите пожалуйста...
0
M128K145
Эксперт С++
8299 / 3519 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
28.04.2010, 10:06 #10
JM007, явное привидение типа к DWORD
0
JM007
1 / 1 / 0
Регистрация: 04.04.2010
Сообщений: 57
28.04.2010, 20:14  [ТС] #11
А что означает time*1000
0
Hell Knight
230 / 60 / 3
Регистрация: 11.03.2010
Сообщений: 290
28.04.2010, 20:19 #12
Цитата Сообщение от JM007 Посмотреть сообщение
А что означает time*1000
дело в том, что уже существует стандартная api-функция:
C++
1
void Sleep(DWORD)
она принимает значение в миллисекундах...
а как известно:
1 секунда = 1000 миллисекунд
2
kivinew
0 / 0 / 0
Регистрация: 07.11.2015
Сообщений: 2
07.03.2016, 15:54 #13
Кликните здесь для просмотра всего текста
return Sleep((DWORD)atoi(str)*1000);
а как void функция может что то возвращать?
0
07.03.2016, 15:54
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2016, 15:54
Привет! Вот еще темы с ответами:

аналог Sleep - C++
нужен аналог Sleep, только чтобы он не останавливал программу, а делал обычную задержку(вроде таймера)

Задержки в Sleep - C++
Друзья, есть код #include &lt;iostream&gt; #include&lt;Windows.h&gt; using namespace std; struct mtime { int min = 0;

Sleep() в фоновом режиме - C++
Мне надо, чтобы пока функция sleep() выполняется, я мог еще что-то делать, но пока она не кончится я не могу ничего сделать, помогите или...

Замена Sleep(int) - C++
Чем заменить Sleep(300000); Чтобы во время этих 5 минут форма была активной и на ней можно например нажать кнопку и т. д.


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.