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

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

Восстановить пароль Регистрация
 
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
22.01.2012, 16:37     В какой кодировке getch() возвращает символ? #1
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. А как вот сделать так, как я задумывал?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
cyberobot
 Аватар для 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
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
22.01.2012, 16:58     В какой кодировке getch() возвращает символ? #4
Цитата Сообщение от denys_l Посмотреть сообщение
SetConsoleOutputCP(1251);
Хорошо, но мало. Рядом с ней
C
1
SetConsoleCP(1251);
ну и шрифт у консольного окна должен быть установлен Lucida Console (или как там его)...
NoMasters
Псевдослучайный
1737 / 1080 / 69
Регистрация: 13.09.2011
Сообщений: 3,093
22.01.2012, 17:06     В какой кодировке getch() возвращает символ? #5
А что, шрифт в виндах влияет на кодировку?Оо
denys_l
51 / 51 / 4
Регистрация: 26.09.2011
Сообщений: 186
22.01.2012, 17:06  [ТС]     В какой кодировке getch() возвращает символ? #6
Да, теперь работает, как нужно. Спасибо
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
22.01.2012, 17:10     В какой кодировке getch() возвращает символ? #7
Цитата Сообщение от NoMasters Посмотреть сообщение
А что, шрифт в виндах влияет на кодировку?
Да чёрт его разберёт, что там на что влияет, но с другими шрифтами этот финт почему-то не работает...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2012, 11:20     В какой кодировке getch() возвращает символ?
Еще ссылки по теме:

C++ Определить, какой символ чаще других встречается в данном файле.
Определить какой символ стоит на позиции с номером n C++
Узнать какой отображён символ в консоли по координатам C++

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

Или воспользуйтесь поиском по форуму:
cyberobot
 Аватар для 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() возвращает символ?
Ответ Создать тему
Опции темы

Текущее время: 08:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru