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

Оператор ввода - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 33, средняя оценка - 4.73
-MefistofeL-
 Аватар для -MefistofeL-
21 / 19 / 1
Регистрация: 11.02.2009
Сообщений: 383
14.02.2009, 22:58     Оператор ввода #1
мне очень нужна нужна функция или совокупности нескольких, которые без всякого нажатия интер считывали бы нажатие клавиши и записывали бы значение в переменую, причем функция должна работать, не ожидая ввода, а при отсутствии отклика возвращала бы определенное значение. Оооооочень нужна эта чудо вещь.. помогите плиз... весь гугл излазил....

И еще оди н вопросик не втему... как удалить "поврежденный" файлик?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
14.02.2009, 23:05     Оператор ввода #2
_kbhit'ом проверяй была ли нажата клавиша, она не задерживается, а сразу возвращает:
ненулеваое значение, если клавиша была нажата,
ноль, если в буфере клавы пусто.
А там делай, что хочешь с тем, что на клаве собралось...
-MefistofeL-
 Аватар для -MefistofeL-
21 / 19 / 1
Регистрация: 11.02.2009
Сообщений: 383
14.02.2009, 23:32  [ТС]     Оператор ввода #3
Vourhey, Спасибо это почти то, что я искал... правда она все таки ожидает ввода... проверил я этим
C#
1
2
3
4
5
6
7
8
9
10
{
        printf("Enter the key\n");
        int a=1;
        while (a!=10)
        {
            if (kbhit())
            printf("No key\n");
            else printf ("key %c\n",getch());
      }
    }
ничего не происходит, пока не нажму клавишу. Так что мне бы еще фанкшен, которая смоглабы ограничить время работы этой функции, уверен, есть такая - для С++ нет ничего невозможного может ктонибудь знает такую?

Добавлено через 5 минут 5 секунд
А хотя нет.... нашел... прошу прощения...
C#
1
2
3
4
5
6
7
8
9
10
  {
        printf("Enter the key\n");
        int a=1;
        while (a!=10)
        {
            if (kbhit()==0)
            printf("No key\n");
            else printf ("key %c\n",getch());
      }
    }
тогда можете посоветовать фанкшин, которая притормаживает работу проги на время порядка 0.01 сек?
oxotnik
 Аватар для oxotnik
1585 / 1062 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
14.02.2009, 23:36     Оператор ввода #4
Цитата Сообщение от -MefistofeL- Посмотреть сообщение
тогда можете посоветовать фанкшин, которая притормаживает работу проги на время порядка 0.01 сек?
Sleep(ms);
-MefistofeL-
 Аватар для -MefistofeL-
21 / 19 / 1
Регистрация: 11.02.2009
Сообщений: 383
14.02.2009, 23:39  [ТС]     Оператор ввода #5
oxotnik, конечно спасибо, но void sleep (int seconds) а мне, как я уже сказал парядка 0.01 секунды нужно
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
14.02.2009, 23:40     Оператор ввода #6
к сожалению, функции, которая притормаживает работу на 0.01 сек нет ( и на 0.1 тоже нет (
есть функция sleep, параметры у нее миллисекунды, на которые нужна задержка.
-MefistofeL-
 Аватар для -MefistofeL-
21 / 19 / 1
Регистрация: 11.02.2009
Сообщений: 383
14.02.2009, 23:41  [ТС]     Оператор ввода #7
oxotnik, вот void usleep (int micro_seconds) спасибо за дачу направления))
oxotnik
 Аватар для oxotnik
1585 / 1062 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
14.02.2009, 23:41     Оператор ввода #8
если под виндами:
Код
VOID Sleep(

    DWORD dwMilliseconds     // sleep time in [B]milliseconds [/B]
   );
-MefistofeL-
 Аватар для -MefistofeL-
21 / 19 / 1
Регистрация: 11.02.2009
Сообщений: 383
15.02.2009, 00:04  [ТС]     Оператор ввода #9
Vourhey, oxotnik, черт(( а в какой либе находится эта слиип? и юслиип.. не знаете?

Добавлено через 3 минуты 21 секунду
Цитата Сообщение от oxotnik Посмотреть сообщение
если под виндами:
Код
VOID Sleep(

    DWORD dwMilliseconds     // sleep time in [B]milliseconds [/B]
   );
хм... а поподробнее можно?
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
15.02.2009, 00:07     Оператор ввода #10
Мне че-то кажется, что ты работаешь в каком-нить турбо С. Тогда там нет sleep, а есть функция delay. Если в MSVC, то, как ни странно, что WINAPI функция Sleep станет доступна после подключения windows.h )
oxotnik
 Аватар для oxotnik
1585 / 1062 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
15.02.2009, 00:08     Оператор ввода #11
#include <winbase.h>
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
15.02.2009, 00:08     Оператор ввода #12
Цитата Сообщение от -MefistofeL- Посмотреть сообщение
Vourhey, oxotnik, черт(( а в какой либе находится эта слиип? и юслиип.. не знаете?

Добавлено через 3 минуты 21 секунду


хм... а поподробнее можно?
а поподробнее можно и самому попробовать найти. Хотя бы, десять минут выделить. А то человек ответил, ты даже не смотрел, а уже...эх...молодежь
-MefistofeL-
 Аватар для -MefistofeL-
21 / 19 / 1
Регистрация: 11.02.2009
Сообщений: 383
15.02.2009, 00:34  [ТС]     Оператор ввода #13
Vourhey, нет)) у меня вижул... и с виндоус.аш не работает((

а когда подключаю #include<winbase.h> камп выводит кучу шибок в нем... что ему не хватает? не подскажете?

Vourhey, и искал.. скачал либы 4-5 в итоге одна из них выдока кучу ошибок..

Добавлено через 7 минут 2 секунды
для winbase никакой зависимости дополнительной не нужно?
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
15.02.2009, 00:37     Оператор ввода #14
Че там не проходит? Ну включи голову-то Вот этот код:
C++
1
2
3
4
5
6
#include<windows.h>  
   
 void main()  
 {  
     Sleep(2000);
 }
отлично скомпилится и задержит прогу на 2 секунды.
Да потому что в проге winbase.h и не должен подключаться, компилиться не будет. Открой MSDN, да посмотри.
-MefistofeL-
 Аватар для -MefistofeL-
21 / 19 / 1
Регистрация: 11.02.2009
Сообщений: 383
15.02.2009, 00:43  [ТС]     Оператор ввода #15
Vourhey, странно...неужели название библиотеки неправильно прописал?... но она на либу не ругалась... ладно... прошу прощения.. виноват.. огромное спасибо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2009, 00:48     Оператор ввода
Еще ссылки по теме:

C++ Прерывание ввода при израсходовании попыток ввода пароля
C++ Оператор % в C++
Перегрузка оператор ввода C++
C++ Классы, дружественная функция, оператор ввода
Перегрузить оператор ввода для множественного копирования файлов C++

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

Или воспользуйтесь поиском по форуму:
Vourhey
Почетный модератор
6470 / 2245 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
15.02.2009, 00:48     Оператор ввода #16
-MefistofeL-, со всеми бывает
декларации winapi раскиданы по кучам модулей: winbase.h, winuser.h, но доступ к ним идет через одну дверь: windows.h. Но не все, конечно.
Yandex
Объявления
15.02.2009, 00:48     Оператор ввода
Ответ Создать тему
Опции темы

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