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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Boogi43
4 / 4 / 0
Регистрация: 25.11.2011
Сообщений: 56
#1

getch() - C++

06.07.2012, 22:14. Просмотров 2173. Ответов 8
Метки нет (Все метки)

Здравствуйте, форумчане!
написал программу, которая должна переводить миллион символов 16-го кода в двоичный, но столкнулся с проблемой: после того, как я ввел миллион символов и нажал Enter ( ANSII код 13) он не переводит весь введенный код в двоичный, а выводит его по символу, требуя для выведения следующего символа на экран повторное нажатие на ENTER. Свою ошибку я понял. А как можно изменить программу так, что бы введя кучу цифр 16 исчисления одним нажатием 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <iostream>
#include <conio.h>
 
 
 
using namespace std;
 
 
int main()
  {  
          
     int i;
     char c;
     
     
    cin >> c;
    
     switch(c)
             {
                 case '0': cout<<"0"; exit(1);
                 case '1': cout<<"1"; break;
                 case '2': cout<<"10"; break;
                 case '3': cout<<"11"; break;
                 case '4': cout<<"100"; break;
                 case '5': cout<<"101"; break;
                 case '6': cout<<"110"; break;
                 case '7': cout<<"111"; break;
                 case '8': cout<<"1000"; break;
                 case '9': cout<<"1001"; break;
                 case 'A': cout<<"1010"; break;
                 case 'B': cout<<"1011"; break;
                 case 'C': cout<<"1100"; break;
                 case 'D': cout<<"1101"; break;
                 case 'E': cout<<"1110"; break;
                 case 'F': cout<<"1111"; break;
                 case 'a': cout<<"1010"; break;
                 case 'b': cout<<"1011"; break;
                 case 'c': cout<<"1100"; break;
                 case 'd': cout<<"1101"; break;
                 case 'e': cout<<"1110"; break;
                 case 'f': cout<<"1111"; break;
             };
    
    c=getch();  
  
    
     
     
     while   (static_cast<int>(c)!=13)  
        {
             switch(c)
               {
                 case '0': cout<<"0000"; break;
                 case '1': cout<<"0001"; break;
                 case '2': cout<<"0010"; break;
                 case '3': cout<<"0011"; break;
                 case '4': cout<<"0100"; break;
                 case '5': cout<<"0101"; break;
                 case '6': cout<<"0110"; break;
                 case '7': cout<<"0111"; break;
                 case '8': cout<<"1000"; break;
                 case '9': cout<<"1001"; break;
                 case 'A': cout<<"1010"; break;
                 case 'B': cout<<"1011"; break;
                 case 'C': cout<<"1100"; break;
                 case 'D': cout<<"1101"; break;
                 case 'E': cout<<"1110"; break;
                 case 'F': cout<<"1111"; break;
                 case 'a': cout<<"1010"; break;
                 case 'b': cout<<"1011"; break;
                 case 'c': cout<<"1100"; break;
                 case 'd': cout<<"1101"; break;
                 case 'e': cout<<"1110"; break;
                 case 'f': cout<<"1111"; break;
 
               }
          c=getch();        
              
        };
  
     
     return 0;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2012, 22:14
Здравствуйте! Я подобрал для вас темы с ответами на вопрос getch() (C++):

getch() - C++
с помощью функции getch() узнал код клавиш... int n; n = getch(); cout &lt;&lt; n;

getch - C++
Недавно начал изучать си++. Что-то написал, не знаю по какой причине не компилирует. Прошу помочь. Думаю проблема где-то в 12 строке. ...

getch - C++
что озночает ввод синволов с помощю getch без буферизации

getch() error - C++
Привет всем, такое дело, не работает getch()! Вот, что пишет: C:\Users\AKHURS\Desktop\tetris_start.cpp:122: implicit declaration...

Замена getch() - C++
Здравствуйте. Решил повысить переносимость своего кода и задался вопросом: на что заменить getch? Насколько я понимаю, эта функция...

аналог getch() - C++
Ребят getch меня не устраивает следующим: когда окно теряет фокус он не работает. как выйти из ситуации?

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
06.07.2012, 22:19 #2
не проверял! но вроде должно что то изменится

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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <iostream>
#include <conio.h>
 
using namespace std;
 
int main()
  {  
          
     int i;
     char c;
     
     
    cin >> c;
    
     switch(c)
             {
                 case '0': cout<<"0"; exit(1);
                 case '1': cout<<"1"; break;
                 case '2': cout<<"10"; break;
                 case '3': cout<<"11"; break;
                 case '4': cout<<"100"; break;
                 case '5': cout<<"101"; break;
                 case '6': cout<<"110"; break;
                 case '7': cout<<"111"; break;
                 case '8': cout<<"1000"; break;
                 case '9': cout<<"1001"; break;
                 case 'A': cout<<"1010"; break;
                 case 'B': cout<<"1011"; break;
                 case 'C': cout<<"1100"; break;
                 case 'D': cout<<"1101"; break;
                 case 'E': cout<<"1110"; break;
                 case 'F': cout<<"1111"; break;
                 case 'a': cout<<"1010"; break;
                 case 'b': cout<<"1011"; break;
                 case 'c': cout<<"1100"; break;
                 case 'd': cout<<"1101"; break;
                 case 'e': cout<<"1110"; break;
                 case 'f': cout<<"1111"; break;
             };
    
    getch();  
 
     while   (static_cast<int>(c)!=13)  
        {
             switch(c)
               {
                 case '0': cout<<"0000"; break;
                 case '1': cout<<"0001"; break;
                 case '2': cout<<"0010"; break;
                 case '3': cout<<"0011"; break;
                 case '4': cout<<"0100"; break;
                 case '5': cout<<"0101"; break;
                 case '6': cout<<"0110"; break;
                 case '7': cout<<"0111"; break;
                 case '8': cout<<"1000"; break;
                 case '9': cout<<"1001"; break;
                 case 'A': cout<<"1010"; break;
                 case 'B': cout<<"1011"; break;
                 case 'C': cout<<"1100"; break;
                 case 'D': cout<<"1101"; break;
                 case 'E': cout<<"1110"; break;
                 case 'F': cout<<"1111"; break;
                 case 'a': cout<<"1010"; break;
                 case 'b': cout<<"1011"; break;
                 case 'c': cout<<"1100"; break;
                 case 'd': cout<<"1101"; break;
                 case 'e': cout<<"1110"; break;
                 case 'f': cout<<"1111"; break;
 
               }
          getch();        
              
        };
  
     
     return 0;
}
[/QUOTE]
0
Boogi43
4 / 4 / 0
Регистрация: 25.11.2011
Сообщений: 56
06.07.2012, 22:22  [ТС] #3
нет, не помогло
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,850
06.07.2012, 22:25 #4
Цитата Сообщение от Boogi43 Посмотреть сообщение
как я ввел миллион символов и нажал Enter

Не по теме:

не устал

1
Boogi43
4 / 4 / 0
Регистрация: 25.11.2011
Сообщений: 56
06.07.2012, 22:26  [ТС] #5
Цитата Сообщение от ValeryS Посмотреть сообщение

Не по теме:

не устал

Это я условно)) макс до чего делал около 4 тыс.
0
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
06.07.2012, 22:29 #6
скажу честно, ты пишеш много символов, программа читает первый символ и заменяет только его и выводит на экран , например ввел 12 вывел 1 так как судя по коду у тебя 1 это 1 а 2 это второй символ каторый уже не читается, и обратную операцию можно только сделать поиском и заменой текста
0
ValeryS
Модератор
6631 / 5038 / 466
Регистрация: 14.02.2011
Сообщений: 16,850
06.07.2012, 22:30 #7
Цитата Сообщение от Boogi43 Посмотреть сообщение
а выводит его по символу, требуя для выведения следующего символа на экран повторное нажатие на ENTER.
Цитата Сообщение от Boogi43 Посмотреть сообщение
char c;
cin >> c;
работаешь с символом

Цитата Сообщение от Boogi43 Посмотреть сообщение
А как можно изменить программу так, что бы введя кучу цифр 16 исчисления одним нажатием ENTER получить другую кучу двоичного кода?
работай со строкой
вводишь строку а потом анализируешь её
0
Nunuvin
2 / 2 / 0
Регистрация: 04.07.2012
Сообщений: 11
07.07.2012, 06:52 #8
А зачем ты getch() в цикл засунул?)
Цитата Сообщение от _or_75 Посмотреть сообщение
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
while   (static_cast<int>(c)!=13)  
        {
             switch(c)
               {
                 case '0': cout<<"0000"; break;
                 case '1': cout<<"0001"; break;
                 case '2': cout<<"0010"; break;
                 case '3': cout<<"0011"; break;
                 case '4': cout<<"0100"; break;
                 case '5': cout<<"0101"; break;
                 case '6': cout<<"0110"; break;
                 case '7': cout<<"0111"; break;
                 case '8': cout<<"1000"; break;
                 case '9': cout<<"1001"; break;
                 case 'A': cout<<"1010"; break;
                 case 'B': cout<<"1011"; break;
                 case 'C': cout<<"1100"; break;
                 case 'D': cout<<"1101"; break;
                 case 'E': cout<<"1110"; break;
                 case 'F': cout<<"1111"; break;
                 case 'a': cout<<"1010"; break;
                 case 'b': cout<<"1011"; break;
                 case 'c': cout<<"1100"; break;
                 case 'd': cout<<"1101"; break;
                 case 'e': cout<<"1110"; break;
                 case 'f': cout<<"1111"; break;
 
               }
          getch();        
              
        };
0
_or_75
-1 / 0 / 0
Регистрация: 18.02.2012
Сообщений: 244
07.07.2012, 10:33 #9
Цитата Сообщение от Nunuvin Посмотреть сообщение
А зачем ты getch() в цикл засунул?)
а черт его знает, думал так, но потом увидел что он использует char
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.07.2012, 10:33
Привет! Вот еще темы с ответами:

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

getch и коды - C++
здравствуйте господа програмисты!как сделать что бы при нажатии клавиши &quot;w&quot; выскакивало надпись привет народ,но только при нажатии именно...

Функция getch() - C++
Здравствуйте! Проблема следующая: в программе для получения значений от пользователя я использовал функцию getch(), вызов этой функции в...

getch и TCHAR - C++
Встала следующая задача : 1) Недопустить ввод кол-ва символов &gt; 10 2) Заменить все символы на * (пароль) Всё это прекрасно...


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

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

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