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

_getch() в цикле выводит бред вместо русских букв - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Alexeas
1 / 1 / 0
Регистрация: 27.11.2010
Сообщений: 12
26.07.2011, 23:16     _getch() в цикле выводит бред вместо русских букв #1
Извращался тут с getch(), возникла небольшая, но странная (для меня) проблема.
В программе такого рода
C++
1
2
3
char x;
x=_getch();
cout<<x;
нормально проходят как английские, так и русские символы (ну и остальные клавиши, естественно).

Решил модифицировать, накодировал вот такую фигню:
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
int bykva(char n) //функция сравнивает полученный код клавиши с кодом букв, если буква, то выводит 1, иначе - 0
{
    for(int i=69;i<=122;)
    {
    if(n!=i)
    ++i;
    else
    return 1;
    }
    for(int i=128;i<=239;)
    {
    if(n!=i)
    ++i;
    else
    return 1;
    }
return 0; 
}
 
void main()
{
setlocale (LC_CTYPE,"Russian");
vector <char> word;
char x='s';
while(bykva(x)==1); //набирать слово до тех пор, пока не введен символ, отличный от буквы
{
x=_getch();
word.push_back(x);
cout<<x;
}
cout<<endl<<"Был введён символ!";
_getch();
}
Такая программа выводит на экран не русские буквы, а другие символы. Т.е. набираю русское слово - вылазиют всякие K, D, @ и прочие.
Использование многобайтовой кодировки, wchar_t и getwch() ни к чему не привело.
Ломаю голову, гугл-папирус ничего не нашёл.

PS. Я полный нуб, и IDE моя VS2008.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.07.2011, 23:16     _getch() в цикле выводит бред вместо русских букв
Посмотрите здесь:

C++ Иероглифы вместо русских букв и Красная строка
C++ Из русских букв в английские
вывод в документ. китайские иероглифа вместо русских или английских букв C++
Иероглифы вместо русских букв C++
вывод иероглифов вместо русских символов C++
C++ Созданная программа вместо русских бук выдает иероглифы
Почему выводит бред C++
C++ Ввод русских букв

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
jonson
 Аватар для jonson
231 / 204 / 61
Регистрация: 18.03.2010
Сообщений: 749
27.07.2011, 01:26     _getch() в цикле выводит бред вместо русских букв #2
На вот, должно нормально выводить.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <conio.h>
#include <vector>
 
using namespace std;
using namespace System;
void main()
{
    vector <char> word;
    char x=' ';
    while( ! isdigit(x) ) 
    {
        x = _getch();
        word.push_back(x);
        cout<<x;
    }
    Console::WriteLine(L"\nБыл введён символ!");
    getch();
}
Yandex
Объявления
27.07.2011, 01:26     _getch() в цикле выводит бред вместо русских букв
Ответ Создать тему
Опции темы

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