Через каждый символ жмется энтер что делать
Как решить проблему с не работающей клавишей Enter (Ввод) в Windows
- Откройте Диспетчер устройств.
- Среди отображаемого списка драйверов нажмите «Клавиатуры», чтобы активировать раскрывающийся список. Выберите клавиатуру из списка и щелкните по ней правой кнопкой мыши.
- В контекстном меню нажмите Удалить устройство и следуйте инструкциям на экране, чтобы завершить процесс.
- Введите Параметры специальных возможностей клавиатуры в поле системного поиска, расположенного на панели задач, и нажмите соответствующую ссылку.
- В новом окне будут перечислены три варианта: «Использовать залипание клавиш», «Использовать озвучивание переключений» и «Использовать фильтрацию ввода». Проверьте тумблеры под всеми этими опциями и убедитесь, что они выключены.

- Проверить, не выпал ли разъем провода устройства, которое соединяет его с компьютером, если выпал — вставить обратно и перезагрузить пк;
- Посмотреть, не был ли включен Num Lock (на ноутбуке) или F-lock (на стационарном компьютере) — он должен быть выключен;
- Обновить драйверы устройства и проверить всю систему на вирусы. Если найдены вирусы — удалить их или переустановить систему;
- Почистить кнопки от грязи и липких пятен, разобрав устройство на части.



Доброго времени суток!
Проблема с Enter'ом

После прохождения гонки, при выводе результатов, не работает клавиша Enter. Испытывал разные версии игры, русифицировал её, англофицировал, ничего не помогает. При чем раньше все работало без проблем.

https://nfsmods.xyz/mod/2 уже давно есть мультфикс
- пожаловаться
- скопировать ссылку

StrelitziaReg
Чел, спас меня, спасибо, ща появилась вилли гонка, и перезапуски вообще не помогали, от души.

Илья Цупенков
раз играешь в прострит 2020 , можешь попробовать мой граф.мод https://nfsmods.xyz/mod?id=1434

StrelitziaReg
не работает. Windows 8.1, игра запускается, но не могу поменять настройки графики — как только пытаюсь изменить разрешение, или какую другую настройку игра тупо зависает, при чем звук продолжает работать, а потом вовсе вылетает с надписью "не отвечает". при чем такое происходит что с данным фиксом, что без него. главное комп был слабее и игра летела как надо, ща комп мощнее, все, не могу поиграть в нее.

Кайлет
Попробуй репак от Р.Г геймс + мультификс

StrelitziaReg
скачал второй репак от механиков, не помню предыдущий репак чей. у механиков такая же беда, закинул мультификс, не помогло, переименовал экзешник в папке с игрой, пока что все норм работает.

2517[mazaxaka zzzz]
ПЕРЕЗАПУСК НЕ ПОМОГАЕТ, ЧТО ЕЩЁ МОЖЕТ ПОМОЧЬ?
- пожаловаться
- скопировать ссылку

Eogr12
Раньше стояла лицуха с NoCD вылеты были, но редкие. А настройки графики никогда не сбрасывались.
Сейчас везде или репаки, или v1.1. И самое что интересное: постоянно вылетало, а настройки сбрасывались.
Стоило выставить запуск от имени админа на ехе-шнике так проблема решилась.
- пожаловаться
- скопировать ссылку

проблема решена еще в 2014 году) нашел решение на просторах интернета. спасибо, Алмату Амренову! именно он и написал это. в общем цитирую:
" В общем столкнулся с такой проблемой на windows 8 x64 по завершении третей гонки в "батл-машин" игра перестает отзываться к нажатием клавиш будь то клавиатура или джойстик, переустановил кучу репаков и версий сначала думал что это из за версий 1.1 но это оказалась не так облазив кучу форумов решения так и не нашел! Такая проблема возникала у людей с win 8 и 7!
Нашел решение этой ситуаций.
Нужно nfs.exe файлу разрешить полный доступ!
Делается следующим образом: кликаем по nfs.exe выбираем свойства=>вкладка "Безопасность"=>нажимаем "изменить"=>выбираем пользователя и выставляем галочки на полный доступ ну и на те поля которые не отмечены тоже можно!
На этом все можно играть и радоваться. "
лично мне помогло. хотя, конечно, иногда косяк снова появляется (думаю из-за того, что нажимаю энтэр, когда выводится счет), но перезапуск в этом случае теперь помогает.
- пожаловаться
- скопировать ссылку

sky__
http://forums.playground.ru/nfs_prostreet/problema_s_enterom-731154/#comment-15455234
L Wntoto
http://forums.playground.ru/nfs_prostreet/problema_s_enterom-731154/#comment-15472911
Не знаю чей именно способ сработал, но какой-то из них, благодарю. Может кому-то пригодится, кто как и я решил понастальгировать, ибо чтобы найти это решение перерыл кучу шлака по разным форумам. А это помогло!Главное правильно поставьте полный доступ.

на забугорных форумах все как 1 говорят переименовать nfs.exe в Prostreet.exe, сам удивился, но реально помогло
- пожаловаться
- скопировать ссылку

L Wntoto
мне он не помог

Windows 7 ( на 64bit проблемы, решение лишь временной помощи: удалить папку PB в месте установленной игры, добавить в исключение DEP (читайте в яндексе), теперь самое сложное, перед каждой игрой переименовывайте файл запуска игры: nfs.exe на nfs1.exe, nfs2.exe и т. д. (переименовывать нужно при каждом новом запуске игры), поехали дальше, во время запуска игры, сперва открывается отдельное чёрное окошко, именно в этот момент нужно нажать клавишу Num lock (если с первого раза не получилось, не кидайте руку в стиле "а в жопу", попробуйте по нажимать при запуске игры в разное время клавишу num lock), последний пункт, очень важный, иначе игра вообще вылетает, нужно поменять количество используемых ядер для игры, для этого нужно свернуть игру нажатием alt+tab, затем открыть диспетчер задач, найти игру нажать правой кнопкой и задать соответствие цп 0 и 1 например или в отдельных случаях только один цп, у меня работала и на 2 цп, вроде как пишут что игра оптимизирована для 2ух ядерных процессоров, все выше вещи проделал я лично на windows 7 64 bit и всё сработало, до выхода из игры всё работает, enter нажимается, игра не вылетает. ps: самый лучший способ установить windows xp ))
- пожаловаться
- скопировать ссылку

такайже фигня на репак от рекодинг,стоит windows7 .
- пожаловаться
- скопировать ссылку

На восьмой винде та же проблема
вообще не вариант играть
- пожаловаться
- скопировать ссылку

Настройка -> Процесс игры -> Схема -> Король
Или Начать Заново в меню паузы во время гонки
- пожаловаться
- скопировать ссылку

Рандомно случается , но редко , тоже вот недавно было на 1.1 eng , без полного доступа , на макс граффе , c именем nfsps.exe . До этого все было нормой , но через время . еще и сбрасывал настройки граффы .
Вот сохранить граффу помогло следующее : запуск от одмина , выставить все на макс кроме эффектов трассы , выставить разрешение рабочего стола 16:9 + частоту экрана родную и так же само сделать в игре . Потом сохранить все в меню игрока и еще потом в карьере , короче геморно . Но поперло сразу , лол .
Так же реестр почистить перед этим нужно и занести инфу по установке игры ( если этого не сделали ) : windows / current / uninstall .
- пожаловаться
- скопировать ссылку

Всё перепробовал, ничего не помогает( менять разрешение, переименовывать, автосохр. откл. и т. д.).
- пожаловаться
- скопировать ссылку

J1EM0H
https://www.playground.ru/nfs_prostreet/file/need_for_speed_prostreet_pochinka_knopki_enter_multifix_v4_xanvier-1079082

Subaru MotorSports
Я скачивал и устанавливал этот файл, но он мне сбил разрешение экрана, по стандарту в настройках есть 1280х1024, а после установки этого фикса нету, только обрезки. \

J1EM0H
А предыдущая версия?
https://www.playground.ru/nfs_prostreet/file/need_for_speed_prostreet_multifix_v3_by_xanvier-1007606

Subaru MotorSports
Установил игру ещё раз, сделал всё так же с мультификсом, только для моего экрана(1280х1024), самое подходящее разрешение 1152х864 при 75Hz, только при таком разрешении видно полноценно весь экран, без съездов картинки, !правда! этот мультификс ухудшил графику игры. Если выберу разрешение экрана выше, будет вне диапазона. Играю так, чисто ради сюжетки
Решение проблем с клавиатурой компьютера и ноутбука

Клавиатура на ноутбуке печатает не те буквы, которые нажимаешь: что делать?
Нажимаете на одни буквы на клавиатуре ноутбука или компьютера, а на экране появляются совсем другие? Не переживайте это легко исправить. Если клавиатура печатает не те буквы и символы, причин может быть несколько. О каждой из них и вариантах решения проблемы, расскажу ниже.
Если вы используете ноутбук. Скорее всего причина в нажатой клавише FN, нажмите Fn+Ins(Insert) и попробуйте печатать. В некоторых случаях Fn+Num Lock, должно помочь.
Как я сказал выше, нажатие клавиши Fn активирует дополнительные символы привязанные на кнопки. Обычно они подписаны другим цветом и нарисованы на кнопках в углу.
Если вы уверены, что на вашей клавиатуре нет кнопки Fn просто читайте дальше. Есть еще несколько способов ниже.
В Windows есть механизм «Залипание клавиш», активируется он если много раз подряд нажать на одну кнопку или на несколько кнопок. Очень часто этот режим нам включают кошки, гуляя по клавиатуре или лежа на ней.
Отключить залипание клавиш просто:
- Зайдите в меню Пуск
- Найдите пункт «Настройка»
- Здесь «Панель Управления»
- Далее «Специальные возможности» или «Центр специальных возможностей»
- Найдите «Набор сочетаний клавиш по очереди» или «Залипание клавиш»
- Найдите галочку «Включить залипание клавиш» и уберите её.
Тут всё просто, посмотрите визуально на клавиатуру, если между кнопок видны крошки или другой мусор. Переверните клавиатуру и аккуратно трясите, пока все или большая часть крошек не выпадут из под кнопок, затем проверяйте помогло ли. Повторять до работоспособности всех кнопок.
Проверьте в меню:
-
- Пуск
- Настройка
- Панель Управления
- Язык и региональные стандарты
- Здесь вкладка «Языки» и нажимайте «Подробнее»
- Затем проверьте какие клавиатуры у вас стоят, должны быть Русский и Английский(США).
Обратите внимание, чтобы рядом со словом Русский, не было приписок: Машинный, Украина, Беларусь и тд. Если у вас была неправильная раскладка, то удалите её и нажмите на кнопку «Добавить язык» или «Добавить раскладкуклавиатуру». Затем выбирайте правильный Русский, без приписок.

Если обе клавиатуры были правильными, попробуйте нажать каждую букву в английской раскладке и посмотрите правильно ли нажимаются буквы и символы, соответствуют ли тем, что вы нажимаете. Если да, проверьте пожалуйста компьютер на вирусы и еще раз на всякий случай убедитесь, что добавлена правильная Русская раскладка. Не лишним будет на всякий случай удалить её и добавить снова. Если же на английской раскладке продолжаются несоответствия того, что вы нажимаете и того, что появляется на экране, значит у вас проблема с самой клавиатурой и её нужно заменить. Зачастую это случается из-за попадаения жидкости на клавиатуру.
Если эта статья вам помогла, напишите в комментариях об этом пожалуйста. Также если есть проблемы и что-то не получилось, пишите, постараюсь помочь.
При нажатии на клавиатуру ноутбука он печатает совсем не те буквы, которые должны быть на экране? Это может быть связано с несколькими основными причинами, с которыми разберемся более детально.
Пользователи ноутбуков часто не замечают, что случайно при печати на клавиатуре была нажата кнопка Fn, отвечающая за включение дополнительных возможностей и функций. Нажмите сочетание клавиш Fn + Ins и попробуйте печатать дальше. Вполне вероятно, что теперь все будет хорошо.
Если ничего не происходит и все равно выводятся не те буквы, которые вы нажимаете, попробуйте нажать Fn + Num Lock – данное сочетание деактивирует дополнительные символы, которые по умолчанию присвоены кнопкам на клавиатуре.
Не работает клавиатура на ноутбуке, как её включить

Нередко индикация питания на корпусе «ноута» горит, а клавиатура не реагирует на нажатие. Попробуйте для начала снять клавиатуру с блокировки. На многих ноутбуках включить её можно при помощи функциональных клавиш Fn и кнопки с замком. Найдите их на своём гаджете и нажмите вместе. Если ничего не происходит, попробуйте удерживать несколько секунд обе кнопки.

Более опытные пользователи скорее всего уже испробовали такой вариант с клавиатурой на ноутбуке. В таком случае время проверить драйвер. Он может отсутствовать для устройства ввода. Перейти в диспетчер устройств можно из Панели Управления. Быстрый доступ: Win + R, команда devmgm.msc или hdwwiz.cpl.

Если возле устройства Клавиатура установлен жёлтый восклицательный знак, значит для него нет программного обеспечения в системе. Драйвера можно найти на сайте производителя. Если ваш компьютер, к примеру, от фирмы HP, раздел поиска находится по этой ссылке.
Вместо букв печатаются цифры на ноутбуке

Иногда и вовсе происходят забавные случаи. Вы пишите в чате игры или в социальных сетях друзьям сообщение, но вместо букв печатаются цифры. Кажется, что ваш ноутбук сходит с ума или имеет проблемы с системой. Но всё дело в принципе работы клавиатуры. Скорее всего «ноут» без дополнительной цифровой клавиатуры. Компании выпускают такие модели, чтобы сделать их компактными. Но полностью от Num Pad не отказываются. А совмещают её с клавишами в правой части буквенной клавиатуры.
И когда вы умышленно или случайно переводите устройство в режим печати цифр, буквы с ними пишутся вперемешку. Чтобы выключить или включить этот режим, нажмите на кнопку Num Lock на панели ноутбука. Или воспользуйтесь нажатием комбинации Fn и Num Lock.
Для решения других проблем с клавиатурой ноутбука воспользуйтесь подсказками из первой части статьи. Советы для компьютера тоже могут быть полезными.
Способы исправления неполадки
Пройдемся по самым популярным методам починки сбоя в работе киборда:
- Обновление Windows.
- Проверка языковых настроек.
- Проверка Автокорректа.
- Отключение NumLock.
- Запуск keyboard troubleshooter.
- Сканирование системы на наличие вирусов.
- Переустановка драйверов.
Обновление Windows
Первым делом необходимо убедиться, что причина бага не связана с устаревшими драйверами системы.
- Откройте Settings.
- Зайдите в Обновления и Безопасность.
- Проверьте системы на наличие апдейтов.
- Перезагрузите компьютер и проверьте осталась ли проблема.
Проверка языковых настроек
Сбой в языковых сеттингах иногда оказывается фактором неверно работающего киборда.
Для исправления выполните следующие шаги:
- Запустите Панель Управления, перейдите в Clock, Language & Region.
- Перейдите в Language, затем Advanced Settings.
- Найдите Override on Default Input Method, воспользуйтесь выпадающим меню и выберите желаемый язык.
Установите этот же язык в разделе Override for windows display language и нажмите ok.
Проверка Автокорректа
Если изменение настроек языка не помогло, убедитесь в правильности сеттинга Автокорректора. Данный метод подходит тем, у кого баг неправильных букв появляется лишь в Word’e.
- Запустите Ворд, перейдите в Файл, затем в Опции.
- Перейдите в Проверку, следом в Опции Автокорректировки.
- Убедитесь, что в опциях нет предустановленных букв и цифр, заменяющих одни другими. В случае их присутствия удалите запись об автозамене.
Отключение NumLock
Иногда проблема кроется не в в самом устройстве, а во включенном НумЛоке. Для исправления ситуации достаточно нажать Num Lock key и проверить, все ли заработало.
Запуск keyboard troubleshooter
В Виндоус 10 присутствует функция помощника, при неполадках в работе периферийных и не только устройств. При возникновении бага выполните следующее:
- Зайдите в Settings.
- Перейдите в Обновление и Безопасность.
- Откройте Средство устранения неполадок. Прокрутите вниз и найдите keyboard troubleshooter.
- Запустите утилиту.
- Дождитесь окончания сканирования и выполните инструкции, которые выдаст вам программа.
- Перезагрузите компьютер и проверьте, все ли работает.
Сканирование системы на наличие вирусов
Иногда киборд перестает правильно печатать буквы в связи с заражением системы.
Используйте антивирус на предмет глубокого сканирования и удаления вредоносных вирусов.
Переустановка драйверов
Если баг скрывается в неполадках внутри драйверов, выполните следующие шаги:
- Запустите Старт меню.
- Напечатайте Device Manager. Откройте утилиту.
- Найдите Keyboards. Правой кнопкой мыши нажмите на них и выберите Удалить.
- Перезагрузите ОС без переустановки драйверов. Система должна сама их переустановить.
Если все вышеописанные методы не помогли, вероятно повреждено что-то в самом устройстве и следует приобрести новую клавиатуру.
При нажатии на клавиатуру ноутбука он печатает совсем не те буквы, которые должны быть на экране? Это может быть связано с несколькими основными причинами, с которыми разберемся более детально.
Пользователи ноутбуков часто не замечают, что случайно при печати на клавиатуре была нажата кнопка Fn, отвечающая за включение дополнительных возможностей и функций. Нажмите сочетание клавиш Fn + Ins и попробуйте печатать дальше. Вполне вероятно, что теперь все будет хорошо.
Если ничего не происходит и все равно выводятся не те буквы, которые вы нажимаете, попробуйте нажать Fn + Num Lock – данное сочетание деактивирует дополнительные символы, которые по умолчанию присвоены кнопкам на клавиатуре.

2]Жесткая перезагрузка ПК.
Он чем-то похож на метод выше, но здесь вы не допустите полного завершения работы. Жесткая перезагрузка ПК — отличный способ решить многие внутренние проблемы на вашем компьютере.
- Сохранять любой открытый документ или прогресс, а затем нажмите и удерживайте мощность кнопку на несколько секунд, пока ноутбук полностью не выключится.
- Удалять аккумулятор вашего ПК и подождите около 3 минут. Теперь подключите адаптер (не вставляйте батарею).
- Загрузиться вашей системе и проверьте, сохраняется ли ошибка.
Если вы используете настольный ПК, Отключить все периферийные устройства (включая клавиатуру) и беспроводные соединения, затем отключите все внешние розетки. Через некоторое время подключите компьютер и подключите все необходимые периферийные устройства, а затем проверьте.
Кнопка работает наоборот
Когда клавиша Fn работает наоборот, мы видим такую ситуацию: если она не зажата, почему-то выполняются дополнительные функции ее «коллег», а в противной ситуации — основные. Например, при пролистывании страницы стрелкой «вверх» начинает увеличиваться звук. А если зажимаем Function, то продвигаемся по листу документа, как и положено, вверх.
Причина в том, что переключился режим клавиш: основной стал дополнительным. Вернуть все на место можно так:
- Нажмите на кнопку Fn Lock, которая и активировала такое «безобразие».
- Зайдите в БИОС по представленной выше схеме. Найдите раздел, посвященный клавиатуре (Key, Keys). Пункт, выделенный на фото ниже, активируйте, если он выключен, или дезактивируйте, если он включен.

Причина №1: Включена дополнительная клавиатура, которая активируется клавишей Fn
Если вы используете ноутбук. Скорее всего причина в нажатой клавише FN, нажмите Fn+Ins(Insert) и попробуйте печатать. В некоторых случаях Fn+Num Lock, должно помочь.
Как я сказал выше, нажатие клавиши Fn активирует дополнительные символы привязанные на кнопки. Обычно они подписаны другим цветом и нарисованы на кнопках в углу.
Если вы уверены, что на вашей клавиатуре нет кнопки Fn просто читайте дальше. Есть еще несколько способов ниже.
Заводской брак или срок службы клавиатуры подошел к концу
Любой технике свойственно ломаться и выходить из строя. Если клавиатура приобретена относительно недавно, то возможно вы столкнулись с заводским браком. В таком случае вы можете обратиться в службу поддержки производителя клавиатуры и рассчитывать на замену устройства.
Дело в том, что многие производители дорожат своей репутацией и не вступая в долгие дебаты с покупателем сразу же высылают почтой новенькую клавиатуру.
Если же клавиатура у вас уже не первый год, то скорее всего она вышла из строя по времени службы и вам следует купить новую.
Переназначение клавиш с помощью сторонних утилит
Для более углублённой настройки клавиш нужно работать через реестр системы — создавать новые разделы и назначать им команды. Всё это долго, сложно и порой слишком рискованно. К счастью, энтузиасты создали несколько приложений, которые выполняют все нужные действия за пользователя.
MapKeyboard
В установке программа не нуждается.
- Как создать резервную копию Windows 10 и восстановить систему с её помощью

Запустите приложение от имени администратора

Переназначьте клавиши с помощью пункта «Remap selected key to»
SharpKeys
Эта утилита не просто даёт возможность переназначать клавиши, но также полностью дезактивировать их (например, верхний ряд функциональных клавиш зачастую просто мешает пользователю). Так же, как и предыдущая утилита, эта программа не требует установки.
- Запустите программу от имени администратора.
- Добавьте клавиши, требующие перенастройки с помощью кнопки «Add».

Добавьте клавиши, нажав кнопку «Add»

Слева выберите клавишу, которую будете перенастраивать, а справа ту, которая её заменит

Произведённые изменения сохраняются в рабочей области приложения
Для каких устройств типична?
Такая проблема может возникать не на всех устройствах. Она наиболее типичная для ноутбуков, так как возникает, только в том случае, если на клавиатуре справа нет особого цифрового блока, что и типично для ноутбуков.
Но может появляться такое явление и на персональных ПК в том случае, если к ним подключена небольшая без такого блока, что тоже иногда встречается.
Теоретически такую перенастройку ввода с клавиатуры могут произвести специальные программы или настройки в реестре компьютера.
Установить причину такой проблемы и устранить ее немного сложнее. Однако, это скорее является исключением из правил и встречается очень редко.
Как избежать нажатия Enter с помощью getchar () для чтения только одного символа?
Я должен нажимать Enter напечатать все буквы, которые я ввел с getchar , но я не хочу этого делать, я хочу нажать на букву и сразу увидеть, что введенная мной буква повторяется без нажатия Enter . Например, если я нажимаю букву «а», я хочу видеть рядом с ней другую букву «а» и так далее:
Но когда я нажимаю «а», ничего не происходит, я могу писать другие буквы, и копия появляется только тогда, когда я нажимаю Enter :
Как я могу это сделать?
Я использую команду cc -o example example.c под Ubuntu для компиляции.
это очень зависит от того, как ваша ОС и терминальный процесс вводят. если вы укажете свою операционную среду, вы, вероятно, получите лучшие ответы. — goldPseudo
Ответ предоставлен на cplusplus.com/forum/articles/19975 работает в Windows с помощью WinAPI. — user1202095
13 ответы
В системе Linux вы можете изменить поведение терминала с помощью stty команда. По умолчанию терминал буферизует всю информацию до тех пор, пока Enter нажимается, прежде чем даже отправить его в программу C.
Быстрый, грязный и не особо переносимый пример изменения поведения из самой программы:
Обратите внимание, что это не совсем оптимально, поскольку предполагает, что stty cooked это поведение, которое вы хотите при выходе из программы, а не проверка исходных настроек терминала. Кроме того, поскольку в необработанном режиме вся специальная обработка пропускается, многие последовательности клавиш (например, CTRL-C or CTRL-D) на самом деле не будут работать так, как вы ожидаете, без их явной обработки в программе.
Вы можете man stty для большего контроля над поведением терминала, в зависимости от того, чего вы хотите достичь.
ответ дан 11 окт ’19, 18:10
Слишком много сырых . Я искал решение, которое позволило бы мне не ждать ENTER. Это решение нарушает все функции входных клемм. — азбука
Это зависит от вашей ОС, если вы находитесь в среде UNIX, флаг ICANON включен по умолчанию, поэтому ввод буферизируется до следующего ‘\n’ or EOF . Отключив канонический режим, вы сразу получите персонажей. Это также возможно на других платформах, но прямого кроссплатформенного решения не существует.
РЕДАКТИРОВАТЬ: Я вижу, вы указали, что используете Ubuntu. Я только что опубликовал нечто подобное вчера, но имейте в виду, что это отключит многие варианты поведения вашего терминала по умолчанию.
Вы заметите, что каждый персонаж появляется дважды. Это связано с тем, что ввод немедленно возвращается на терминал, а затем ваша программа возвращает его с помощью putchar() тоже. Если вы хотите отделить вход от выхода, вам также необходимо отключить флаг ECHO. Вы можете сделать это, просто изменив соответствующую строку на:
ответ дан 10 мар ’18, в 08:03
+1 Хотя, честно говоря, это, вероятно, не тот уровень кода, который удобен для оригинального плаката;) — Андомар
Большой! Вот что я искал! — Денилсон Са Майя
Спасибо за помощь вместе с подробными комментариями, это решило мою проблему. — каминскнатор
Невероятно, что что-то столь простое так сложно реализовать и не переносимо. — Pedro77
getchar () — это стандартная функция, которая на многих платформах требует, чтобы вы нажали ENTER, чтобы получить ввод, потому что платформа буферизует ввод до тех пор, пока не будет нажата эта клавиша. Многие компиляторы / платформы поддерживают нестандартную функцию getch (), которая не заботится о ENTER (обходит буферизацию платформы, обрабатывает ENTER как просто еще одну клавишу).

+1 правильно, getchar() начинает читать символы один за другим только после того, как вы нажали ввод — Андомар
getchar() не заботится о ENTER, он просто обрабатывает все, что приходит через stdin. Буферизация строки обычно определяется операционной системой / терминалом. — goldПсевдо
@goldPseudo: Верно, но почти все платформы буферизуют ввод, так что это поведение, которое вы увидите в большинстве практических случаев. getch (), если он поддерживается, либо управляет, либо игнорирует буферизацию. Я знаю, что некоторые старые реализации DOS обходили буферизацию ОС, чтобы напрямую взаимодействовать с оборудованием. Другие реализации могут сбрасывать стандартный ввод, чтобы добиться того же поведения. — Эрик Дж.
Тем не менее, это не getchar() это «требует, чтобы вы нажали ввод», но окружение. — Бенджи XVI
Очень кратко и легко для понимания. Другие ответы с самым высоким рейтингом просто содержат массу ненужных технических деталей. — мзоз
Ввод-вывод — это функция операционной системы. Во многих случаях операционная система не передает напечатанный символ программе, пока не будет нажата клавиша ENTER. Это позволяет пользователю изменять ввод (например, перебивать и набирать заново) перед его отправкой в программу. В большинстве случаев это работает хорошо, предоставляет пользователю согласованный интерфейс и избавляет программу от этого. В некоторых случаях желательно, чтобы программа получала символы от клавиш по мере их нажатия.
Сама библиотека C работает с файлами и не заботится о том, как данные попадают во входной файл. Следовательно, в самом языке нет способа получать клавиши по мере их нажатия; вместо этого это зависит от платформы. Поскольку вы не указали ОС или компилятор, мы не можем найти его для вас.
Кроме того, стандартный вывод обычно буферизуется для повышения эффективности. Это делается библиотеками C, поэтому существует решение C, которое заключается в fflush(stdout); после каждого написанного символа. После этого, будут ли символы отображаться немедленно, зависит от операционной системы, но все операционные системы, с которыми я знаком, будут отображать вывод немедленно, так что обычно это не проблема.
Мне нравится ответ Лукаса, но я хотел бы его немного уточнить. В termios.h названный cfmakeraw() который человек описывает как:
Это в основном делает то же самое, что предлагал Лукас, и многое другое, вы можете увидеть точные флаги, которые он устанавливает на страницах руководства: Термиос (3).
Случай использования
Создан 11 июля ’16, 22:07
Обратите внимание, что cfmakeraw() это непереносимое нестандартное расширение для POSIX termios.h и не обязательно доступен. — Эндрю Хенле
Поскольку вы работаете над производной Unix (Ubuntu), вот один из способов сделать это — не рекомендуется, но он будет работать (если вы можете точно вводить команды):
Используйте прерывание, чтобы остановить программу, когда она вам наскучила.
- Строка ‘echo’ сохраняет текущие настройки терминала как сценарий оболочки, который их восстановит.
- Строка ‘stty’ отключает большую часть специальной обработки (поэтому Ctrl + D не действует, например) и отправляет символы в программу, как только они становятся доступными. Это означает, что вы больше не можете редактировать свой ввод.
- Строка ‘sh’ восстанавливает исходные настройки терминала.
Вы можете сэкономить, если stty sane восстанавливает ваши настройки достаточно точно для ваших целей. Формат ‘-g’ не переносится между версиями ‘stty’ (поэтому то, что сгенерировано в Solaris 10, не будет работать в Linux или наоборот), но эта концепция работает везде. Параметр ‘stty sane’ доступен не везде, AFAIK (но есть в Linux).