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

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

Войти
Регистрация
Восстановить пароль
 
DimaDev
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 5
#1

Ожидание клавиши Enter - getch не работает - C++

06.04.2016, 15:54. Просмотров 590. Ответов 7
Метки нет (Все метки)

Друзья привет!
Спасибо всем, кто откликнется! Мелкий вопрос, но честно, уже голова кругом идет! Второй день бьюсь над совершенно элементарной прогой, скоро голова уже треснет!
Хочу написать простейшую программу: вводиться текст (любой!) и когда нажимается Enter программа выводит свой текст на экран консол (типа "Спасибо", или "Напишите еще", короче простой текст). Здесь на форму вычитал, что надо использовать getch для отлова нажатия клавиш. Написал такую прогу:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstdlib>
#include <conio.h> 
using namespace std;
int main()
{
    cout << "Напишите что ни будь";
    cout << endl;
    char a;
    a = getch();
    if (a == 32) {
        cout << "Спасибо";
    }
    char b;
    b = getch();
    if (b == 32) {
        cout << "Напишите еще ";
    }
    return 0;
}
Но она не работает! Запуске пишет "Возникли ошибки сборки." Если нажать нет, то пишет, что "Ошибка 1 error C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details." Что я делаю не так? Может без этого getch можно как то сделать? Спасибо!
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2016, 15:54
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ожидание клавиши Enter - getch не работает (C++):

Убрать ожидание нажатия клавиши Enter при выводе - C++
Здравствуйте! Подскажите пожалуйста, вот у меня сейчас вывод есть как бы, но он выводит через ентер каждый товар, а мне надо чтоб сразу все...

Ожидание нажатия клавиши - C++
А подскажите пожалуйста, как в С++ сделать так, чтобы программа, написанная в консольных приложениях, продолжала свою работу только после...

Не работает getch() - C++
Здравствуйте, решил написать первую серьезную программу ,в данном случае змейку, не получается ввести нажатие клавиши с клавиатуры.После...

Не работает getch() - C++
не работает задержка по getchar() #include &lt;iostream&gt; #include &lt;cstdlib&gt; #include &lt;time.h&gt; #include &lt;cstdio&gt; #include...

Нажатие клавиши без ожидания Enter - C++
Как в c++ сделать так, что бы при нажатии какой-то клавиши, программа(консоль) сразу выполняла действие , а не ждала пока введут этот...

Переназначить событие клавиши ENTER в консоли - C++
Добрый день. У меня есть массив, мне его нужно заполнить числами с клавиатуры. Но этот массив должен заполняться в строчку, а не в...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Virchow
4 / 3 / 4
Регистрация: 21.03.2016
Сообщений: 35
Завершенные тесты: 1
06.04.2016, 15:58 #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Используйте _getch();
DimaDev
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 5
06.04.2016, 16:03  [ТС] #3
Virchow, спасибо! Сообщение об ошибке перестало появляться. Т.е. правильно не getch, а _getch?
shogunuz
4 / 4 / 0
Регистрация: 02.03.2015
Сообщений: 382
06.04.2016, 16:05 #4
Можно и без гетч:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
    setlocale(0,"");
cout << "ПРИВЕТ!\n";
system("pause");
 
return 0;
}
DimaDev
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 5
06.04.2016, 16:18  [ТС] #5
Все равно ничего не получается! (((
Объясните, пожалуйста, тупому, как это сделать?
Надо простейшие действия - вы вводите ЛЮБОЙ текст и нажимаете энтер, в ответ программа выдает заранее записанный в нее текст, затем вы опять вводите ЛЮБОЙ текст и нажимаете энтер, в ответ программа выводит следующий блок заранее записанного текста.
Я могу написать программку, которая будет считать, находить среднее, раскладывать на множители, а это - НЕ МОГУ!!! ((((((((
GbaLog-
Любитель чаепитий
2714 / 1247 / 302
Регистрация: 24.08.2014
Сообщений: 4,460
Записей в блоге: 1
Завершенные тесты: 2
06.04.2016, 16:27 #6
shogunuz, А можно и кроссплатформенно и без всяких сообщений типа: "Press x to win.".
C++
1
std::cin.get();
Stitch Igorek
45 / 45 / 18
Регистрация: 02.04.2016
Сообщений: 308
Завершенные тесты: 1
06.04.2016, 17:52 #7
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
27
28
29
30
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    cout << "Напишите что ни будь";
    cout << endl;
    char str[50];
    int i = 0;
 
    while (true)
    {
 
        str[i] = _getch();
        cout << str[i];
        if (str[i] == 13)
        {
            str[i] = '\0';
            break;
        }
        i++;
    }
 
    cout << "Спасибо\n";
 
    cout << str;
    system("pause");
    return 0;
}
Добавлено через 3 минуты
работает только с английской раскладкой.
DimaDev
0 / 0 / 0
Регистрация: 06.04.2016
Сообщений: 5
07.04.2016, 01:26  [ТС] #8
В общем вот как я это сделал, обошелся без спец. функции ожидания энтера:

C++
1
2
3
4
5
6
7
string a, b;
cin >> a;
cout << "первый текст";
cout << endl;
cin >> b;
cout << "второй текст";
cout << endl;
Добавлено через 26 минут
УТОЧНЕНИЕ - НЕ РАБОТАЕТ!

Похоже, что в этой строке a и b - это любой текст, до пробела, а не до энтера
string a, b;

Казалось бы получилось - а нет(((
Подскажите, пожалуйста, что делать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.04.2016, 01:26
Привет! Вот еще темы с ответами:

Подскажите аски код клавиши ENTER - C++
Хотел написать программу, которая вводит строки из файла и выводит их потом построчно, но для вывода каждой новой строки нужно нажать...

не работает ни _getch(), ни getch() - C++
собственно проблема: из консоли невозможно считать клавиши: Esc, Insert, Delete ....... и самое главное не читаются стрелки... считывает...

Обработка нажатия клавиши без подтвержения enter - C++
Здравствуйте, уважаемые программисты. Подскажите в чем проблема. Вывожу рисунок посредством команды dos в языке turbo c. Необходимо...

обработка клавиши enter для textbox'a на форме - C++
пытаюсь сделать обработку кнопки enter, после нажатия которой будут происходить соответствующие преобразования с вводимой...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.04.2016, 01:26
Ответ Создать тему
Опции темы

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