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

Не работает getch() - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти слово с наибольшим количеством гласных букв http://www.cyberforum.ru/cpp-beginners/thread1027700.html
Гляньте что не так: #include <iostream> #include <string.h> #include <conio.h> using namespace std; void main(){ char glas="aeiou"; //Создаем массив гласных букв англ. языка. int k=0; //Для подсчета гласных в предложении. char it;
C++ Массив размерностью MxN. Необходимо найти номер строки и номер столбца, в которых находится наименьший элемент Ребят, очень надеюсь на вашу помощь! Во всех вариантах необходимо написать три функции, которые будут вызываться из функции main(). Первая функция получает размерность массива, создает динамический массив и возвращает указатель на начало созданного массива. Вторая – получает адрес массива и его размерность и решает одну из ниже перечисленных задач. Третья функция получает адрес массива и... http://www.cyberforum.ru/cpp-beginners/thread1027690.html
Почему не правильно считает? C++
//--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop //--------------------------------------------------------------------------- #pragma argsused #include<iostream.h> #define n 8
Неполучается сделать цикл для алгоритма Форель C++
Пытаюсь реализовать алгоритм ФОРЕЛЬ. Вот что пока есть. Знаю позор это все( Нужно сделать чтобы числа вводились либо вручную либо подгружались с файла excel. #include <iostream> #include <math.h> using namespace std; int main() {
C++ do - while http://www.cyberforum.ru/cpp-beginners/thread1027647.html
Организовать цикл, который принимает с клавиатуры отдельные символы и накапливает их в символьной переменной, каждый раз выполняя битовую операцию &. Окончание цикла - ввод 0. #include <iostream> #include <locale.h> using namespace std; void main() { setlocale(LC_CTYPE, "Russian"); char x=' ';
C++ Сортировка столбца массива, указанного пользователем, в порядке убывания Привет... Помогите, пожалуйста... Написал код, который заполняет двумерный массив, нужно дописать это код, чтобы он еще: -отсортировывал столбец массива, указанный пользователем, в порядке убывания... Помогите... Время 3-й час ночи, устал мучиться... Вот код: #include <iostream> #include <ctime> #include <conio.h> using namespace std; подробнее

Показать сообщение отдельно
ZeBerg
0 / 0 / 0
Регистрация: 17.11.2013
Сообщений: 4
04.12.2013, 00:10     Не работает getch()
Здравствуйте, решил написать первую серьезную программу ,в данном случае змейку, не получается ввести нажатие клавиши с клавиатуры.После поиска гуглом нашел getch()
C++
1
2
3
4
5
6
char button_input()// ввод с клавы
{
char pressed_button;// переменная клавиши
pressed_button=getch();//ввод
return pressed_button;
}
Вот та часть кода с вводом.Я не знаю правильно ли я использовал данный оператор.



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
# include <iostream>
# include <windows.h>
# include <time.h>
// библиотека, нужна для использования функции Sleep()
# include <conio.h>
// библиотека, нужна для использования функций kbhit() и getch()
using namespace std;
int x=0,y=0;
int matrix[10][10];
void matrix_output(int x,int y) 
{
int matrix[10][10];//собственно матрица
 
}
char button_input()// ввод с клавы
{
char pressed_button;// переменная клавиши
pressed_button=getch();//ввод
return pressed_button;
}
int matrix_change(char button)
{
int x=0,y=0;//координаты головы
char w='w',a='a',s='s',d='d';
string str,str1,str2,str3,str4;//строки
str=button;//ввод в строку нажатую клавишу
str1=w;
str2=a;
str3=s;
str4=d;
if (strcmp(str.c_str(),str1.c_str())==0)//проверка на w 
{
    y++;//увеличение y
};
if (strcmp(str.c_str(),str2.c_str())==0)
{
    x--;//уменьшение x
};
if (strcmp(str.c_str(),str3.c_str())==0)
{
    y--;
 
};
if (strcmp(str.c_str(),str4.c_str())==0)
{
    x++;
 
};
return (x,y);
}
int main()
{
do
{
 char button=button_input();
 x,y=matrix_change(button);
 system("cls");
 for (int i=0; i<10; i++)
 {
  //цикл по переменной i, в котором перебираем строки матрицы
  for (int j=0; j<10; j++)
  {
   cout<<matrix[i][j]<<"\t"; //вывод очередного элемента матрицы
   cout<<endl; //переход на новую строку после вывода всех элементов строки
   matrix[x][y]=1;
   system("cls");
  }
 }
}
while(x<10,y<10);
int abcg;
cin>>abcg;
return 0;
}
Вот вся программа на сейчас.Она не дописана но выводит 0 хотя не должна(


Подскажите пожалуйста как правильно его использовать?
З.Ы Я знаю что я еврей и не умею красиво писать, да что уж там - вообще не умею писать)

Добавлено через 28 минут
После некоторых преобразований получилось красивее но не функциональней :
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
# include <iostream>
# include <windows.h>
# include <time.h>
// библиотека, нужна для использования функции Sleep()
# include <conio.h>
// библиотека, нужна для использования функций kbhit() и getch()
using namespace std;
int x=0,y=0;
int matrix[10][10];
void matrix_output(int x,int y) 
{
int matrix[10][10];//собственно матрица
 
}
 
int matrix_change()
{
int x=0,y=0;//координаты головы
 
char pressed_button=getch();
switch (pressed_button)
  {
  case 77:
   y--;
  case 61:
   x--;
  case 73:
   y++;
  case 64:
   x++;
}
return (x,y);
}
int main()
{
do
{
 
 system("cls");
 for (int i=0; i<10; i++)
 { x,y=matrix_change();
   matrix[x][y]=1;  
  for (int j=0; j<10; j++)//цикл по переменной i, в котором перебираем строки матрицы
  {
   cout<<matrix[i][j]<<"\t"; //вывод очередного элемента матрицы
   cout<<endl; //переход на новую строку после вывода всех элементов строки
   matrix[x][y]=1;
   system("cls");
  }
 }
}
while(x<10,y<10);
int abcg;
cin>>abcg;
return 0;
}
кусок с getch():
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
int matrix_change()
{
int x=0,y=0;//координаты головы
 
char pressed_button=getch();
switch (pressed_button)
  {
  case 77:
   y--;
  case 61:
   x--;
  case 73:
   y++;
  case 64:
   x++;
}
return (x,y);
}
проблема таже
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:50. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru