Форум программистов, компьютерный форум CyberForum.ru

Ожидать... - C++

Восстановить пароль Регистрация
 
fortero
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 15
20.06.2010, 05:08     Ожидать... #1
Доброй ночи Господа!
Есть необходимость вот в чём: нужно что бы выполнение программы в определённое время останавливалось на энное время, например
C++
1
2
3
4
5
6
setlocale(LC_ALL, ".1251");
cout << "Нажмите любую клавишу и подаждите 30 секунд...\n";
_getch();
 
cout << "Программа выполнена нажмите любую клавижу...";
_getch();
После того как пользователь нажмёт любую клавишу программа должна выждать 30 секунд, как это сделать? При помощи какой функции?
За ранние спасибо!
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
20.06.2010, 05:28     Ожидать... #2
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <windows.h>
 
int main(){
    std::cout << "Press enter...";
    std::cin.get();
    Sleep(30000);
    std::cout << "Good bye!" << std::endl;
    return 0;
}
fortero
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 15
20.06.2010, 11:44  [ТС]     Ожидать... #3
Спасибо за помощь, а если прийдётся компелить под Linux, FreeBSD какой заголовочный файл использовать вместо #include <windows.h> ???
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
20.06.2010, 13:42     Ожидать... #4
fortero,
C
1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
#include <unistd.h>
 
int main(void){
    printf("Press enter...");
    getchar();
    sleep(30);
    printf("Good bye!\n");
    return 0;
}
Sanu0074
 Аватар для Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,186
Записей в блоге: 5
20.06.2010, 16:20     Ожидать... #5
Цитата Сообщение от easybudda Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
#include <windows.h>
 
int main(){
    std::cout << "Press enter...";
    std::cin.get();
    Sleep(30000);
    std::cout << "Good bye!" << std::endl;
    return 0;
}
а как сделать чтоб показывало сколько времени осталось ожидать?
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
20.06.2010, 16:51     Ожидать... #6
Цитата Сообщение от Sanu0074 Посмотреть сообщение
а как сделать чтоб показывало сколько времени осталось ожидать?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <windows.h>
 
int main(){
        std::cout << "Press enter...";
        std::cin.get();
for(int i=30; i>0; i--)
{
std::cout<<"Time to shutdown "<<i<<" seconds"<<std::endl;
        Sleep(1000);
}
        std::cout << "Good bye!" << std::endl;
        return 0;
}
Sanu0074
 Аватар для Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,186
Записей в блоге: 5
20.06.2010, 17:06     Ожидать... #7
Цитата Сообщение от Mur3ik Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <windows.h>
 
int main(){
        std::cout << "Press enter...";
        std::cin.get();
for(int i=30; i>0; i--)
{
std::cout<<"Time to shutdown "<<i<<" seconds"<<std::endl;
        Sleep(1000);
}
        std::cout << "Good bye!" << std::endl;
        return 0;
}

а чтобы как таймер работало, чтоб строка невыводилась каждую секунду, а обновлялся экран?
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
20.06.2010, 17:15     Ожидать... #8
Цитата Сообщение от Sanu0074 Посмотреть сообщение
а чтобы как таймер работало, чтоб строка невыводилась каждую секунду, а обновлялся экран?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <windows.h>
 
int main(){
        std::cout << "Press enter...";
        std::cin.get();
for(int i=30; i>0; i--)
{
system("cls");
std::cout<<"Time to shutdown "<<i<<" seconds"<<std::endl;
        Sleep(1000);
}
        std::cout << "Good bye!" << std::endl;
        return 0;
}
Sanu0074
 Аватар для Sanu0074
58 / 58 / 2
Регистрация: 14.06.2010
Сообщений: 1,186
Записей в блоге: 5
20.06.2010, 17:16     Ожидать... #9
Цитата Сообщение от Mur3ik Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <windows.h>
 
int main(){
        std::cout << "Press enter...";
        std::cin.get();
for(int i=30; i>0; i--)
{
system("cls");
std::cout<<"Time to shutdown "<<i<<" seconds"<<std::endl;
        Sleep(1000);
}
        std::cout << "Good bye!" << std::endl;
        return 0;
}
system("cls") - очищает весь экран, а нужно только то что в цикле!
Mur3ik
102 / 102 / 4
Регистрация: 12.05.2010
Сообщений: 232
20.06.2010, 17:28     Ожидать... #10
Цитата Сообщение от Sanu0074 Посмотреть сообщение
system("cls") - очищает весь экран, а нужно только то что в цикле!
можно извратится так...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <windows.h>
 
int main(){
        std::cout << "Press enter...";
        std::cin.get();
for(int i=30; i>0; i--)
{
std::cout<<"Time to shutdown "<<i<<" seconds ";
        Sleep(1000);
        for(int i=0; i<=27;i++)
        std::cout<<"\b";
        if(i==1)
            std::cout<<std::endl;
}
        std::cout << "Good bye!" << std::endl;
        return 0;
}
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
20.06.2010, 17:29     Ожидать... #11
Цитата Сообщение от Sanu0074 Посмотреть сообщение
а чтобы как таймер работало, чтоб строка невыводилась каждую секунду, а обновлялся экран?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <iomanip>
#include <unistd.h>
 
int main(){
    const int DELAY = 30;
    
    std::cout << "Press enter...";
    std::cin.get();
    std::cout << "Remaining to shutdown: " << DELAY;
    for ( int cnt = DELAY; cnt > 0; --cnt ){
        std::cout << "\b\b" << std::setw(2) << std::setfill('0') << cnt;
        std::cout.flush();
        sleep(1);
    }
    std::cout << "\nGood bye!" << std::endl;
    
    return 0;
}
Придумайте, как под виндовс переделать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.06.2010, 20:20     Ожидать...
Еще ссылки по теме:

HTML, CSS <table><tr><td> не работает как и следовало ожидать
Ожидать событие от Com-port
Ожидать выполнение запроса C#

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

Или воспользуйтесь поиском по форуму:
fortero
0 / 0 / 0
Регистрация: 21.02.2010
Сообщений: 15
20.06.2010, 20:20  [ТС]     Ожидать... #12
Шикарно Господа!
Я пальщён, огромное спасибо!
А можно вопрос не по теме темы, а как сделать что бы при запуске программы ну скажим вот такой:
C++
1
2
3
4
5
6
7
8
9
void main(void)
{
 
for(int a=0;a < 1;)
{
cout << "Hello...\n";
Sleep(1000);
 
}
Нужно, что бы фраза на экран не выводилась, и вообще программа запустилась прозрачно даже чёрное консольное окно не появилось, как сделать что программы скрыто работали?
Точней это не вирус тут тайны не нужны, но что бы на экран нечего не выводилось а программа работала себе и работала среди процессов…
Yandex
Объявления
20.06.2010, 20:20     Ожидать...
Ответ Создать тему
Опции темы

Текущее время: 23:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru