Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 11.10.2022
Сообщений: 24

Как использовать русские символы в case?

11.10.2022, 11:53. Показов 1296. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вот условие задачи
Дан признак геометрической фигуры на плоскости: к - круг, п - прямоугольник, т - треугольник.
Вывести на экран периметр и площадь заданной фигуры (данные, необходимые для расчетов,
запросить у пользователя.
Вводя английские символы, то все работает. Как использовать русские?
Код:
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <iostream>
#include<math.h>
#define PI 3.14159265
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    char f;
    cout << "Выбеирете геометрическую фигуру на плоскасти\n";
    cout << "Введите "к" для выбора круга\n";
    cout << "Введите "п" для выбора прямоугольника\n";
    cout << "Введите "т" для выбора треугольника\n";
    cin >> f;
    switch (f)
    {
    case 'k':
    {
        double r;
        double S, P;
        cout << "Вы выбрали круг\n";
        cout << "Введите радиус круга\n";
        do
        {
            cin >> r;
            if (r <= 0)
            {
                cout << "Введите положительное значение отличное от нуля\n";
            }
        } while (r <= 0);
        S = pow(r, 2) * PI;
        P = 2 * PI * r;
        cout << "Площадь круга равна " << S << endl;
        cout << "Периметр круга равна " << P << endl;
    }
    break;
 
    case 'p':
    {
        cout << "Вы выбрали прямоугольник\n";
        cout << "Введите стороны прямоугольника\n";
        double a, b;
        double S, P;
        do
        {
            cin >> a >> b;
 
            if (a <= 0 || b <= 0)
            {
                cout << "Стороны не могут быть отрицательными\n";
                cout << "Введите стороны прямоугольника\n";
            }
        } while (a <= 0 || b <= 0);
        S = a * b;
        P = 2 * (a + b);
        cout << "Площадь прямоугольника равна " << S << endl;
        cout << "Периметр прямоугольника равен " << P << endl;
    } break;
    case 't':
    {
        cout << "Вы выбрали треугольник\n";
        cout << "Введите стороны треугольника\n";
        double a, b, c;
        double S, P, p;
        do
        {
            cin >> a;
            cin >> b;
            cin >> c;
            if (a <= 0 || b <= 0 || c <= 0)
            {
                cout << "Стороны не могут быть отрицательными\n";
                cout << "Введите стороны треугольника\n";
            }
        } while (a <= 0 || b <= 0 || c <= 0);
        if (a + b > c && a + c > b && b + c > a)
        {
            p = (a + b + c) / 2;
            S = sqrt(p * (p - a) * (p - b) * (p - c));
            P = a + b + c;
            cout << "Площадь треугольника равна " << S << endl;
            cout << "Периметр треугольника равен " << P << endl;
        }
        else
            cout << "Треугольник не существует\n";
    }
    break;
    default:
    {
        cout << "Можно ввести только : к, т, п\n";
    }
    break;
    }
 
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
11.10.2022, 11:53
Ответы с готовыми решениями:

Как использовать русские символы в приложениях Qt?
Здравствуйте! Как сделать чтобы можно было использовать на кнопках например, русские символы? Ну что-то типа сишгоно setlocale есть?

Case и русские символы
Здравствуйте, Есть массив char text в котором лежат буквы. При проверке лежит ли в данном месте определённая буква,компилятор...

Использовать русские символы и символ 219 в ASCII
мне нужно использовать русские символы (я ставил через setlocale(LC_ALL, &quot;Russian&quot;);) и символ 219 в ASCII. Как мне этого добиться?...

3
Злостный нарушитель
 Аватар для Verevkin
10359 / 5779 / 1275
Регистрация: 12.03.2015
Сообщений: 26,710
11.10.2022, 13:03
Цитата Сообщение от Constal Посмотреть сообщение
Как использовать русские?
аналогичечно.
0
0 / 0 / 0
Регистрация: 11.10.2022
Сообщений: 24
11.10.2022, 23:26  [ТС]
когда в case вместо 'k' поставить 'к' этот case перестаёт работать. Может другой тип данных нужен?
0
 Аватар для Tanya2007
593 / 230 / 72
Регистрация: 13.05.2020
Сообщений: 412
12.10.2022, 13:09
Лучший ответ Сообщение было отмечено Constal как решение

Решение

Локаль надо подключить и вывод русских букв в консоли
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <windows.h>
 
int main ()
{
    setlocale(LC_ALL, "Russian");
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);   
...
...
...
return 0;
}
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.10.2022, 13:09
Помогаю со студенческими работами здесь

Как в C# искать русские символы?
data_href=&quot;Привет&quot; if (data_href.Contains(&quot;Привет&quot;) { } как такое реализовать*??

Как в c++ подключить русские символы?
Можно ли подключить что-нибудь и делать так: #include &lt;iostream&gt; #include &lt;string&gt; using namespace std; main() { string s =...

[T-SQL] Как использовать CASE в WHERE
Доброго времени суток больничка. Интересует следующее. Есть такой код: use blabla go declare @DateTimeStart1 DateTime; set...

Как использовать related_name в Case . When?
Здравствуйте. Есть модели Albums и Album. Последняя ссылается на Albums по типу ForeignKey. Соответственно для внешнего ключа прописано...

Русские символы как отрицательные в int
Привет, кто то может мне пояснить почему char test(140); std::cout &lt;&lt; '\t' &lt;&lt; test &lt;&lt;&quot; &quot; &lt;&lt; static_cast&lt;int&gt;(test) &lt;&lt;...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru