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

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

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

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

22.01.2012, 16:37. Просмотров 898. Ответов 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++
кусочек программы словаря процедура перевода слов с английского на русский struct types { char rus,angl; }; ...

Функция gets() возвращает текст в неправильной кодировке - C++
Здравствуйте. Подскажите пожалуйста, что с этим можно сделать... Здесь, текст который будет введен в строке &quot;Введите строку: &quot; должен...

Считать из этого файла какой-либо символ и записать этот символ в новый файл - C++
здравствуйте , помогите с решением следующего задания: естьтекстовый файл vvod.txt, в нем записана строка. мне нужно считать из этого...

Getche() не возвращает введенный символ - C++
в 13 строке не принимает getche #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { char dir = 'a'; ...

Какой символ написан? - C++
Вопрос: В консоле выведена строка - &quot;Я епт строка&quot; ( допустим ). Как определить букву, например &quot;т&quot;. Иным языком, у меня есть условие...

Сколько раз какой символ встречается в файле - C++
Здравствуйте.. У меня просьбочка небольшая, нужно решить такую задачку, кому она по силу? Помогите пожалуйста..

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
cyberobot
15 / 15 / 1
Регистрация: 01.09.2011
Сообщений: 66
22.01.2012, 16:50 #2
Цитата Сообщение от denys_l Посмотреть сообщение
while (ch!='н' && ch!='Н' && ch!='д' && ch!='Д');
заменятся при компиляции на другие символы. нужно печатать в другой кодировке
Ilyawow
24 / 24 / 5
Регистрация: 18.11.2011
Сообщений: 266
22.01.2012, 16:50 #3
12345
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,606
22.01.2012, 16:58 #4
Цитата Сообщение от denys_l Посмотреть сообщение
SetConsoleOutputCP(1251);
Хорошо, но мало. Рядом с ней
C
1
SetConsoleCP(1251);
ну и шрифт у консольного окна должен быть установлен Lucida Console (или как там его)...
NoMasters
Псевдослучайный
1753 / 1096 / 72
Регистрация: 13.09.2011
Сообщений: 3,127
22.01.2012, 17:06 #5
А что, шрифт в виндах влияет на кодировку?Оо
denys_l
52 / 52 / 4
Регистрация: 26.09.2011
Сообщений: 186
22.01.2012, 17:06  [ТС] #6
Да, теперь работает, как нужно. Спасибо
easybudda
Модератор
Эксперт CЭксперт С++
9530 / 5523 / 932
Регистрация: 25.07.2009
Сообщений: 10,606
22.01.2012, 17:10 #7
Цитата Сообщение от NoMasters Посмотреть сообщение
А что, шрифт в виндах влияет на кодировку?
Да чёрт его разберёт, что там на что влияет, но с другими шрифтами этот финт почему-то не работает...
cyberobot
15 / 15 / 1
Регистрация: 01.09.2011
Сообщений: 66
23.01.2012, 11:20 #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);
}
и всё будет работать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.01.2012, 11:20
Привет! Вот еще темы с ответами:

Как определить, какой символ был введен? - C++
# include &lt;iostream&gt; # include &lt;iomanip&gt; using namespace std; # include &lt;conio.h&gt; void main() { char symbol; cout &lt;&lt;...

Узнать какой отображён символ в консоли по координатам - C++
Здравствуйте, допустим программа выводит какие-то символы на экран консоли. Есть ли такой способ программно узнать (наверно это...

Определить какой символ стоит на позиции с номером n - C++
Задача В игре участвуют двое – А и Б, каждый по очереди ставит свой символ в строку, причем переписывает все что было написано до него...

Какой символ в таблице ASCII находится под номером 67? - C++
Какой символ в таблице ASCII находится под номером 67? Нужен код програми!!!


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

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

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