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

Структуры. Не отображаются русские буквы - C++

Восстановить пароль Регистрация
 
A78
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 20
06.04.2013, 15:14     Структуры. Не отображаются русские буквы #1
Посмотрите пожалуйста правильность решения задачи, можно ли так написать эту программу! Почему при вводе наименования русские буквы не отображаются!

Задание: разработать программу, выполняющую функции: ввод данного списка в массив записей, вывод массива записей на экран и выполнение запроса.

Структура записей: Шифр товара (строка 5 символов), Наименование (строка 20 символов), Цена в руб. (вещественное число), Количество (целое число). Запрос: Поиск товаров, имеющих цену меньше 20000 руб. и количеством экземпляров больше 100 с выводом найденных записей на экран.
Код:
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
#include <stdio.h>
#include <conio.h>
#include <windows.h>
#include <locale.h>
 
struct Product
{
    char ShifProd[5];   
    char NameProd[20];  
    double Price;
    int Number;
};
 
int main()
{
    setlocale(0,"Russian");
    Product a[100];
    int n = 0,op;
    int i,j;
    do
    {
        puts("############################");
        puts("#  (1) Добавить товар      #");
        puts("#  (2) Показать список    #");
        puts("#  (0) Выход                   #");
        puts("############################");
        do op = getch() - '0';
        while(op < 0 || op > 2);
        switch(op)
        {
            case 1:{
                system("cls");
                fflush(stdin);
                printf("Введите шифр товара: \n ");
                gets(a[n].ShifProd);
                printf("Введите наименование товара: \n ");
                gets(a[n].NameProd);
                printf("Введите цену товара (руб): \n ");
                scanf("%lf",&a[n].Price);
                printf("Введите кол-во товара: \n ");
                scanf("%d",&a[n].Number);
                n++;
                system("cls");
                }
                break;
                case 2:{
                        system("cls");
                        if(n == 0) puts("В списке нет записей.");
                        else{
                            puts("###############################################################################");
                            puts("#  Шифр#         Наименование#          Цена #   Кол-во #"); 
                            puts("###############################################################################");
                            for(int i = 0; i < n; i++){
                                printf("#%5s #%20s #%14lf #%10d#",a[i].ShifProd,a[i].NameProd,a[i].Price, a[i].Number);
                                puts("#");
                            }
                            puts("###############################################################################");
                            printf("\n");
                            printf("Список товаров:\n");
                            for(i=0; i<n; i++)  
                            {   
                                if(a[i].Price<20000 && a[i].Number>100) 
                                    printf("\nшифр товара: %s \nнаименование товара: %s \nцена товара (руб): %lf \nкол-во товара: %d \n ",a[i].ShifProd,a[i].NameProd,a[i].Price,a[i].Number);
                            }
                        }
                        system("pause");
                        system("cls");
                    }break;
                }
    }while(op !=0);
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2013, 15:14     Структуры. Не отображаются русские буквы
Посмотрите здесь:

русские буквы C++
Русские буквы C++
C++ русские буквы
Некорректно отображаются русские надписи на кнопках C++
C++ Русские буквы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
beta-particle
 Аватар для beta-particle
4 / 4 / 0
Регистрация: 07.01.2013
Сообщений: 103
06.04.2013, 15:20     Структуры. Не отображаются русские буквы #2
Как по мне, то setlocale странно используется. В частности первый аргумент.

Добавлено через 1 минуту
Попробуй прописать
C++
1
setlocale(LC_ALL,"russain")
pi_X_el
Заблокирован
06.04.2013, 15:47     Структуры. Не отображаются русские буквы #3
C++
1
system("chcp 1251");
Добавлено через 23 секунды
вместо setlocale(0,"Russian");

Добавлено через 14 секунд
вместо setlocale(0,"Russian");

Добавлено через 17 секунд
[QUOTE=pi_X_el;4369919]
C++
1
system("chcp 1251");
A78
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 20
06.04.2013, 19:41  [ТС]     Структуры. Не отображаются русские буквы #4
Тогда вообще русский язык не работает, а так только при выводе наименования.
vans37
 Аватар для vans37
35 / 19 / 1
Регистрация: 28.01.2013
Сообщений: 37
06.04.2013, 19:50     Структуры. Не отображаются русские буквы #5
A78, setlocale(LC_ALL,"rus");
Указывайте при таких вопросах среду разработки.
A78
0 / 0 / 0
Регистрация: 22.03.2013
Сообщений: 20
06.04.2013, 20:54  [ТС]     Структуры. Не отображаются русские буквы #6
Среда разработки - MinGW.
Yandex
Объявления
06.04.2013, 20:54     Структуры. Не отображаются русские буквы
Ответ Создать тему
Опции темы

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