Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.87/140: Рейтинг темы: голосов - 140, средняя оценка - 4.87
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
1

Подскажите аски код клавиши ENTER

25.05.2013, 07:54. Показов 26251. Ответов 26
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Хотел написать программу, которая вводит строки из файла и выводит их потом построчно, но для вывода каждой новой строки нужно нажать клавишу enter. Подскажите аски код клавиши ENTER или подскажи как можно изменить программу, вот код:
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
31
32
#include<iostream>
#include<fstream>
#include<vector>
using namespace std;
int main()
{
   ifstream cin("input.txt");
   //ofstream cout("output.txt");
   vector<string> v;
   string str,str1;
   char enter;
   long long int a=0,b,perem=1,ans=0,i;
   while(getline(cin,str))
   {
       v.push_back(str);
   }
   for(i=0;i<=v.size()-1;i++)
   {
       cout<<v[i]<<endl;
       l:cout<<"'Enter' for continue\n";
       scanf("%c",&enter);
       if(enter=='\n')
       {
       }
       else
       {
           goto l;
       }
   }
   //cout<<str1;
    return 0;
}
P.S. Заранее спаибо.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2013, 07:54
Ответы с готовыми решениями:

прога, которая по нажатой клавише выводит ascii - код символа это клавиши или scan - код самой клавиши.
написать программу, которая по нажатой клавише выводит ascii - код символа этой клавиши или scan -...

подскажите аски код
подскажите аски код перехода на новую строчку.

Код клавиши <Enter> не отрабатывает
Вот в таком коде клавиша &lt;Tab&gt; отрабатывает нормально, а &lt;Enter&gt; - нет: Private Sub...

Код клавиши Enter на калькуляторе
Всем здравствуйте ! Такая делема : знаю что код клавиши ентер на цифровой клавиатуре - 13. Да и...

26
48 / 48 / 14
Регистрация: 30.03.2009
Сообщений: 523
25.05.2013, 11:05 2
Enter - 13
0
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
25.05.2013, 14:40  [ТС] 3
Подскажите теперь пожалуйста как это можно реализовать, а то, что-то у меня не выходит. Не работает считывание клавиши "ENTER".
0
77 / 69 / 20
Регистрация: 05.05.2013
Сообщений: 3,810
25.05.2013, 14:48 4
C++
1
2
enter = getchar();
if (enter == 13) ...
0
Модератор
Эксперт функциональных языков программированияЭксперт Python
36601 / 20330 / 4220
Регистрация: 12.02.2012
Сообщений: 33,641
Записей в блоге: 13
25.05.2013, 14:49 5
Попробуй вместо scanf:

C++
1
system("pause");
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
25.05.2013, 14:51 6
Цитата Сообщение от NaikoN Посмотреть сообщение
Не работает считывание клавиши "ENTER".
scanf возвращает управление после нажатия Enter
0
77 / 69 / 20
Регистрация: 05.05.2013
Сообщений: 3,810
25.05.2013, 14:52 7
Цитата Сообщение от Catstail Посмотреть сообщение
Попробуй вместо scanf:

C++
1
system("pause");
Эпик фейл, он должен считать символ, и проверить, а не постоянно делать задержку...
0
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
25.05.2013, 14:56  [ТС] 8
Croessmah, А, что тогда нужно использовать вместо scanf() ????
0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
25.05.2013, 14:58 9
Цитата Сообщение от NaikoN Посмотреть сообщение
А, что тогда нужно использовать вместо scanf() ????
ну если под Windows(DOS) тогда можно _getch()
0
77 / 69 / 20
Регистрация: 05.05.2013
Сообщений: 3,810
25.05.2013, 15:01 10
я же отписал вам вариант с getchar(), аналогично можно юзать getch()
0
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
25.05.2013, 15:01  [ТС] 11
А точно код клавиши enter равен 13???? не 10????
0
77 / 69 / 20
Регистрация: 05.05.2013
Сообщений: 3,810
25.05.2013, 15:03 12
Цитата Сообщение от NaikoN Посмотреть сообщение
А точно код клавиши enter равен 13???? не 10????
Лучше просто ввести гетчаром, проверить на \n:
C++
1
2
enter = getchar();
if (enter == '\n') ...
0
Заблокирован
Автор FAQ
25.05.2013, 15:04 13
NaikoN, Enter это виртуальная клавиша результат её нажатия да проявляется в том что в буффере остаётся '\n' ASCI код которого известен. Посмотри как профессионально парсить стрелки, клавиши F, Shift, Ctrl, Esc, Enter и т.д. Стрелки клавиатуры в консоли Виртуальный код клавиши есть в Winbase.h VK_RETURN.

Не по теме:

Цитата Сообщение от NaikoN Посмотреть сообщение
vector<string> v;
- использовать STL и при этом юзать scanf/getch - это всё равно как смотреть 3D на чёрнобелом ламповом телевизоре...

0
Неэпический
17870 / 10635 / 2054
Регистрация: 27.09.2012
Сообщений: 26,736
Записей в блоге: 1
25.05.2013, 15:04 14
Цитата Сообщение от NaikoN Посмотреть сообщение
А точно код клавиши enter равен 13???? не 10????
C++
1
2
3
4
5
6
#include <iostream>
#include <conio.h>
int main(){
    char ch=_getch();
    std::cout<<"Key ["<<(unsigned int)ch<<"]"<<std::endl;
}
0
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
25.05.2013, 15:14  [ТС] 15
pizurok, Я попробовал с getchar() он не верно работает, т. е. сначало он считывает код введеной клавиши и следом клавиши enter и получается сначала вывод Wrong и следом следующую строку
P.S. Может я не верно его использовал, но с _getch() все работает на "УРА".

Добавлено через 1 минуту
-=ЮрА=-, Ну простите, я еше не шибко грамотный

Добавлено через 29 секунд
В конечном итоге у меня получилось так:
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
31
32
33
34
35
36
#include<iostream>
#include<fstream>
#include<vector>
#include<conio.h>
using namespace std;
int main()
{
    
   ifstream cin("input.txt");
   //ofstream cout("output.txt");
   vector<string> v;
   string str,str1;
    int x,i;
    while(getline(cin,str))
   {
       v.push_back(str);
   }
    for(i=0;i<=v.size()-1;i++)
   {
    
       l:;
       cout<<"'Enter' for continue\n";
       x=_getch();
       if(x==13)
       {
           cout<<v[i]<<endl;
       }
       else
       {
           cout<<"Wrong\n";
           goto l;
       }
          
   }
    return 0;
}
Добавлено через 1 минуту
Croessmah, Спасибо, помогли.
P.S.S. Всем большое спасибо.
0
-=ЮрА=-
25.05.2013, 15:26
  #16

Не по теме:

Цитата Сообщение от NaikoN Посмотреть сообщение
goto l;
- о боже:facepalm:

0
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
25.05.2013, 15:29  [ТС] 17
-=ЮрА=-, А что плохого? Я не нашел альтернативы.
0
Заблокирован
Автор FAQ
25.05.2013, 15:30 18
Для тех кому может понадобиться код в стандарте и без извратов
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
#include <string>
#include <vector>
#include <sstream>
#include <iostream>
using namespace std;
 
int main()
{
    string data = 
        "This is\n"
        "the test of\n"
        "aplication";
    stringstream ss(data);
    string line;
    vector<string> vec;
    while(getline(ss, line))
        vec.push_back(line);
    for(int i = 0; i < vec.size(); i++)
    {
        cout<<"PRESS ENTER FOR CONTINUE...";
        if(cin.get() == '\n')
            cout<<vec[i]<<endl;
    }
    return 0;
}

Не по теме:

вместо fstream стоит sstream для наглядности

Миниатюры
Подскажите аски код клавиши ENTER  
1
2 / 2 / 1
Регистрация: 01.05.2013
Сообщений: 109
25.05.2013, 15:30  [ТС] 19
P.S. Goto не так уж и плох как о нем отзываются.
0
-=ЮрА=-
25.05.2013, 15:35     Подскажите аски код клавиши ENTER
  #20

Не по теме:

Цитата Сообщение от NaikoN Посмотреть сообщение
-=ЮрА=-, А что плохого? Я не нашел альтернативы.
-
1 - возможность ухода программы в infinte loop
2 - неопределённость поведения кода в случае возникновения ошибки внутри блока метка-goto
есть ещё много ньансов
Цитата Сообщение от NaikoN Посмотреть сообщение
Я не нашел альтернативы.
- выше альтернатива, искал значит плохо.
Указанный оператор безусловного перехода нерекомендован при написании профессиональных кодов.
Хочешь пиши, но кроме как "гавнокод" на код с goto не скажут.
ЗЫ
Цитата Сообщение от NaikoN Посмотреть сообщение
P.S. Goto не так уж и плох как о нем отзываются.
- конечно же ты прав:wall:

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2013, 15:35

Составить код, чтобы когда нажимаешь на клавиатуру, выводился Аски код
составить код, чтобы когда нажимаешь на клавиатуру, выводился Аски код

Аски код клавиш
Нужна программа определяющая аски код нажатой клавиши. Так же нужно выводить на экран происходящие...

Как сложить аски код букв?
Привет, не могу додуматься как поделить аски код и сложить его, собственно надо буквы перевести в...

Вывод символа имея его аски код
Здравствуйте. скажите пожалуйста как можно вывести символ в текст бокс имея его аски код? если...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru