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

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

Войти
Регистрация
Восстановить пароль
 
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
#1

В какой кодировке getch() возвращает символ? - C++

22.01.2012, 16:37. Просмотров 892. Ответов 7
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <Windows.h>
#include <conio.h>
 
int main()
{
  SetConsoleOutputCP(1251);
char ch;
do
{
  ch=getch();
  std::cout << ch;
} while (ch!='н' && ch!='Н' && ch!='д' && ch!='Д');
}
Вот такой вот кусочек кода... от которого я хочу, чтобы кода я вводил с русской раскладки 'н', 'д', 'Н', 'Д' - имело место выход из wile-цикла. В итоге, он у меня выходит, когда жму русскую ф - выводит на экран, что это русская д. Посмотрев в таблицу, я заметил, что принимает символы в MSDOS. А как вот сделать так, как я задумывал?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.01.2012, 16:37     В какой кодировке getch() возвращает символ?
Посмотрите здесь:
C++ getch(); ожидает ESC и при этом ест вводимый символ
C++ Функция gets() возвращает текст в неправильной кодировке
C++ Считать из этого файла какой-либо символ и записать этот символ в новый файл
Getche() не возвращает введенный символ C++
Какой символ написан? C++
Сколько раз какой символ встречается в файле C++
Определить какой символ стоит на позиции с номером n C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cyberobot
15 / 15 / 1
Регистрация: 01.09.2011
Сообщений: 66
22.01.2012, 16:50     В какой кодировке getch() возвращает символ? #2
Цитата Сообщение от denys_l Посмотреть сообщение
while (ch!='н' && ch!='Н' && ch!='д' && ch!='Д');
заменятся при компиляции на другие символы. нужно печатать в другой кодировке
Ilyawow
24 / 24 / 5
Регистрация: 18.11.2011
Сообщений: 266
22.01.2012, 16:50     В какой кодировке getch() возвращает символ? #3
12345
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
22.01.2012, 16:58     В какой кодировке getch() возвращает символ? #4
Цитата Сообщение от denys_l Посмотреть сообщение
SetConsoleOutputCP(1251);
Хорошо, но мало. Рядом с ней
C
1
SetConsoleCP(1251);
ну и шрифт у консольного окна должен быть установлен Lucida Console (или как там его)...
NoMasters
Псевдослучайный
1744 / 1087 / 71
Регистрация: 13.09.2011
Сообщений: 3,115
22.01.2012, 17:06     В какой кодировке getch() возвращает символ? #5
А что, шрифт в виндах влияет на кодировку?Оо
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
22.01.2012, 17:06  [ТС]     В какой кодировке getch() возвращает символ? #6
Да, теперь работает, как нужно. Спасибо
easybudda
Эксперт С++
9456 / 5469 / 927
Регистрация: 25.07.2009
Сообщений: 10,495
22.01.2012, 17:10     В какой кодировке getch() возвращает символ? #7
Цитата Сообщение от NoMasters Посмотреть сообщение
А что, шрифт в виндах влияет на кодировку?
Да чёрт его разберёт, что там на что влияет, но с другими шрифтами этот финт почему-то не работает...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2012, 11:20     В какой кодировке getch() возвращает символ?
Еще ссылки по теме:
Узнать какой отображён символ в консоли по координатам C++
Как определить, какой символ был введен? C++
C++ Задание по строкам (Определить, в какой позиции ошибочный символ)
Какой символ в таблице ASCII находится под номером 67? C++
C++ Какой символ чаще других встречается в данном файле

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

Или воспользуйтесь поиском по форуму:
cyberobot
15 / 15 / 1
Регистрация: 01.09.2011
Сообщений: 66
23.01.2012, 11:20     В какой кодировке getch() возвращает символ? #8
можно сделать четыре переменные с этими символами а потом CharToOem()
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <windows.h>
int main()
{
     char d='д';
     char D='Д';
     char n='н';
     char N='Н';
     CharToOem(d,d);
     CharToOem(D,D);
     CharToOem(n,n);
     CharToOem(N,N);
}
и всё будет работать
Yandex
Объявления
23.01.2012, 11:20     В какой кодировке getch() возвращает символ?
Ответ Создать тему
Опции темы

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