1 | |||||||||||
Не работает getch()27.09.2012, 14:21. Показов 20336. Ответов 17
Метки нет Все метки)
(
не работает задержка по getchar()
собственно задержки не происходит. а вот так все происходит
0
|
|
27.09.2012, 14:21 | |
Ответы с готовыми решениями:
17
Аналог getch или русские буквы в getch Не работает getch() не работает ни _getch(), ни getch()
|
Псевдослучайный
1946 / 1145 / 98
Регистрация: 13.09.2011
Сообщений: 3,215
|
|
27.09.2012, 14:24 | 3 |
В потоке ввода есть символы, вероятно, там перенос.
0
|
27.09.2012, 17:26 [ТС] | 4 | ||||||||||
можно поподробнее? Добавлено через 2 часа 57 минут гуглил на счет потока и напоролся на fflush. попробовал сделать
или мб есть другие способы приоотановки программы до нажатия клавиши, которые работают в linux?
0
|
Кошковед
521 / 509 / 63
Регистрация: 12.04.2010
Сообщений: 1,390
|
|
27.09.2012, 17:39 | 5 |
поставь std::cin.clear(); std::cin.get().get();
1
|
27.09.2012, 17:51 [ТС] | 7 |
не помогло. причем все вышеперечисленные способы исправно работают вне данной программы, т.е. создаю "hello world" и добавляю туда char c = getchar() или std::cin.clear(); std::cin.get() и все приостанавливается как положено, но вот в моей программе почему то нет
Добавлено через 4 минуты это к сожалению тоже не помогло ![]()
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
27.09.2012, 18:03 | 8 |
И в 61 строке инициализируйте count нулём.
Добавлено через 39 секунд ![]() Добавлено через 1 минуту Остановки нет, а что происходит? Добавлено через 1 минуту Проблема может не в остановке. Добавлено через 6 минут В линукс только cin.sync() не работает, остальное должно работать. Может проблема в неинициализированном count? У меня ошибка времени выполнения выскакивала.
1
|
Чайник
70 / 70 / 9
Регистрация: 15.02.2012
Сообщений: 475
|
|
27.09.2012, 18:07 | 9 |
На скоко мне помнится, для getch(); нужено подключить conio.h
2
|
27.09.2012, 18:45 [ТС] | 11 | |||||
делаю все в codeblocks, пробовал также из консольки компилить, эффекта ноль Добавлено через 2 минуты остановки нет, программа работает так, словно и нету там getch()
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
||||||
27.09.2012, 19:53 | 12 | |||||
Конструкцию для очистки потока нужно перед getchar() ставить, а не после. Вот этот код нормально работает (sleep() убрано и #include <unistd.h>):
1
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|||||||||||
27.09.2012, 20:21 | 14 | ||||||||||
В данном случае должен сработать и просто:
1
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
27.09.2012, 20:35 | 16 |
Проскакивание ожидания ввода (паузы) происходит из-за того, что в потоке ввода, после предшествующего ввода, остаются символы. Чаще всего, остаётся символ новой строки '\n', который попадает в поток при нажатии Enter. cin >> его просто игнорирует, а такие функции, как getchar(), cin.get() и пр. считывют его, как первый символ в потоке и код идёт дальше. Ожидания ввода символа не происходит. Поэтому, перед применением этих функций поток нужно очищать.
0
|
4 / 4 / 1
Регистрация: 25.09.2012
Сообщений: 70
|
||||||
27.09.2012, 20:49 | 17 | |||||
компилятор ругается на
Работаю в dev c++
0
|
5498 / 4893 / 831
Регистрация: 04.06.2011
Сообщений: 13,587
|
|
27.09.2012, 20:56 | 18 |
Скорее всего, это не для Windows.
0
|
27.09.2012, 20:56 | |
27.09.2012, 20:56 | |
Помогаю со студенческими работами здесь
18
Как работает функция getch() и какая библиотека нужна? Программа не работает когда пишу "getch()", исправьте ошибки getch getch() Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |