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

Оператор scanf не считывает с клавиатуры русский символ 'а' - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Метод Шелла http://www.cyberforum.ru/cpp-beginners/thread1040980.html
Помогите пожалуйста, я пока плохо знаю метод Шелла. Разработать программу для расчета времени, необходимого для выполнения сортировки массива методом Шелла. Сортируемую последовательность необходимо генерировать из случайных чисел. Оценить О-сложность алгоритма. Желательно на языке С ++.
C++ Перепишите программу из Pascal в C++ Здравствуйте. Прошу вас о помощи. Есть программа на Pascal. Нужно переписать её на C++, чтобы она выполняла такие же операции. Вот код: Program t1; var n: longint; p : int64; begin assign(input,'input.txt'); reset(input); readln(n); http://www.cyberforum.ru/cpp-beginners/thread1040970.html
Постройте таблицу значений функции y=f(x) для x[a, b] с шагом h C++
#include"conio.h" #include"stdlib.h" #include"stdio.h" #include"math.h" int main() { float x,y,r,q; do {
C++ Классы, исключения и совершенные числа
Здраствуйте! Нужно описать класс Magicflower. Для создания объектов этого класса необходимо задать число лепестков цветка, которое должно быть совершенным числом, т.е. если оно равно сумме всех своих делителей за исключением самого себя... #include <iostream> int main(){ unsigned n, sum = 0; std::cin >> n; for (int i = n/2; i; --i) if (n % i == 0) sum += i; ...
C++ Как преобразовать String в HWND http://www.cyberforum.ru/cpp-beginners/thread1040943.html
Можно как то преобразовать String в HWND ? как сделать обратное преобразование то есть из HWND в String разобрался, а вот из String в HWND немогу найти способ. Тип HWND нужен для хранения хендла окна, я его пишу в базу данных, а из нее можно получить результат только типа String, потом чтобы проверить наличие этого окна в функции IsWindow(); нужно значение с типом HWND
C++ найти определенный интегрла функции найти определенный интегрла функции e^(x*x-2*x+5) методом симпсона с определенной точностью, которая вводится с клавиатуры (границы интеграла и число разбиений тоже вводятся с клавиатуры). И еще осуществить проверку, если границы равны или нижняя больше верхней, то решений нет подробнее

Показать сообщение отдельно
qwe321
0 / 0 / 0
Регистрация: 08.05.2013
Сообщений: 23
14.12.2013, 13:58     Оператор scanf не считывает с клавиатуры русский символ 'а'
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
34
35
36
37
38
#include "stdafx.h"
#include <locale>
#include <Windows.h>
#include <WinUser.h>
#include <conio.h>
 
#define MAX_STR_LEN     300
 
void cp866_cp1251(char* s) 
{    
    for (char* c = s; *c != 0; c++) 
    {        
        if (*c > -129 && *c < -80)            
        {
            *c += 64;        
        }
        else if (*c > -33 && *c < -16)            
        {
            *c += 16;    
        }
    }
}
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(LC_ALL, "Russian"); 
    
    printf("Русский текст из программы. Введите строку с клавиатуры: \n");
 
    char strFromKeyboard[MAX_STR_LEN + 1];  
    scanf("%s", strFromKeyboard);
    cp866_cp1251(strFromKeyboard);
 
    printf("Русский текст с клавиатуры: %s\n", CharLower(strFromKeyboard));
 
    getch();
    return 0;
}
Русский символ 'а' имеет код -32. Если его вводить с клавиатуры, то будет получен код -96, который с помощью функции конвертирования cp866_cp1251 преобразовался бы в -32.
Visual Studio 2008 почему-то пропускает группу символов -96, если с них начинается строка. Например:

Если ввести строку "аааааабвгд", то прочитается "бвгд"
А если ввестистроку "баааабвгд", то прочитается "баааабвгд"

Если вводить только русские символы 'а', то функция scanf будет реагировать так, как будто мы просто нажали enter
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 15:19. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru