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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Вопрос по VS 2008 http://www.cyberforum.ru/cpp-beginners/thread336427.html
Здравствуйте, не подскажите как: 1) посмотреть аварийный стэк вызовов 2) как поставить точку останова, и заставить прогу работать пока она не перейдет на это строку
C++ Папки header файлов. VS 2010 Подскажите как в Visual Studio 2010 указать, где находятся header файлы. В папке, где находятся соответствующие cpp файлы (в папке проекта) VS их не хочет искать, приходится прописывать путь полностью http://www.cyberforum.ru/cpp-beginners/thread336424.html
C++ Как записать данные в начало файла не уничтожая его?
Как записать данные в начало файла не уничтожая его? Вот пример могу ток записывать данные в конец файла ,а в начало нет хоть устанавливаю указатель вначале ,а запись данных серовно идет в конец файла. При других значениях данные из файла уничтожаются если не ios::app. Как по вашему можно записать данное в начале файла ,но при этом не уничтожив файл? #include <iostream> #include <fstream>...
C++ Проблема с методом класса(наверное)
Есть вот такой пример: #include <iostream> using namespace std; class One{ int iclOne; float fclOne; char* chclOne; public: One(): iclOne(0), fclOne(0), chclOne(NULL){}
C++ Простенькая задача http://www.cyberforum.ru/cpp-beginners/thread336399.html
Нужно написать программу которая выдает запрос на ввод часов и запрос на ввод минут. Функция main () должна передать значения функции, имеющей вид void, которая отображает эти 2 значения в виде: Введите количество часов : 9 Введите количество минут : 28 Время: 9:28 Загвоздка в то что немогу вывести 2 значения:) вот код) // Программа просит ввести значения часов и минут, затем выводит...
C++ MSXML: Как получить Root элемент? Загружаю в XML документ: #include <msxml6.h> // .. CComPtr<IXMLDOMDocument> spXMLDOM; CComPtr<IXMLDOMElement> spRoot; VARIANT_BOOL varStatus; HRESULT hr = spXMLDOM.CoCreateInstance(__uuidof(DOMDocument)); if ( FAILED(hr) ) throw "Unable to create XML parser object"; if ( spXMLDOM.p == NULL ) throw "Unable to create XML parser object"; подробнее

Показать сообщение отдельно
Alexeas
1 / 1 / 0
Регистрация: 27.11.2010
Сообщений: 12
26.07.2011, 23:16     _getch() в цикле выводит бред вместо русских букв
Извращался тут с 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.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 06:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru