0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 116
1

Вывод строки в неверной кодировке

10.10.2015, 21:00. Показов 506. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
// Lab4_Seravin(UC8-31).cpp: определяет точку входа для консольного приложения.
//
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <locale.h>
struct Dis //Структура "Дисциплина"
{
    char Name[64]; //Название дисциплины
    int Score; // Оценка
};
 
struct student //Структура "Студент"
{
    char FIO[64]; //Имя студента
    Dis Distip[4]; //Дисциплины (массив)
};
 
 
int main(int argc, char* argv[])
{
    setlocale(LC_ALL, "rus");
    student *pG; // Указатель на массив структур
    int n; // Число элементов массива
    printf_s("n=");
    scanf_s("%d", &n); // Вводим число элементов массива
    pG = (student *)malloc(n*sizeof(student)); // Выделяем память под массив структур
    printf("Введите названия дисциплин(до 4-х): \n");
    for (int j = 0,i=0; j < 4; j++)
        {
            printf_s("Дисциплина №%d: ", j + 1);
            fflush(stdin);
            gets_s(pG[i].Distip[j].Name);
            OemToAnsi(pG[i].Distip[j].Name, pG[i].Distip[j].Name);
        }
  
    for (int i = 0; i < n; i++) // Цикл ввода данных с клавиатуры
    {
        printf_s("Студент #%d", i + 1);
        printf_s("\nFIO: ");
        _flushall(); // Сброс всех буферов ввода- вывода
        gets_s(pG[i].FIO);
        OemToAnsi(pG[i].FIO, pG[i].FIO);
        printf_s("\tОценки\n"); 
        for (int j = 0; j < 4; j++)
        {
            fflush(stdin);
            printf_s("По дисциплине %s: ", pG[i].Distip[j].Name);
            scanf_s("%d", &pG[i].Distip[j].Score);
        }
    }
 
    for (int i = 0; i < n; i++) // Цикл печати введенных данных
    {
        printf("\nСтудент №%d %s\n", i + 1, pG[i].FIO);
        for (int j = 0; j < 4; j++)
            printf("%s: %d; ", pG[i].Distip[j].Name, pG[i].Distip[j].Score);
    }
    int k = 0;
    printf("\nСколько студентов имеют неудовлетворительную оценку по заданному предмету\n");
 
    for (int j = 0; j < 4; j++)//Находим неудовлетворительную оценку
    {
        for (int i = 0; i < n; i++)
        {
            printf("По дисциплине %s: ", pG[i].Distip[j].Name);
            for (i = 0; i < n; i++)
                if (pG[i].Distip[j].Score == 2) k++;
                printf("%d\n", k); k = 0; //Выводим результат (количество 2)
        }
    }
    free(pG); // Освобождаем память
    system("pause"); // Останавливаем программу, ждем нажатия любой клавиши
}
Миниатюры
Вывод строки в неверной кодировке  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.10.2015, 21:00
Ответы с готовыми решениями:

Форматный вывод из файла в программе тестирования в неверной кодировке
Нужна Ваша помощь. Есть файл(test), имеющий структуру Нужно сделать так, чтобы выводилась первая...

Как можно максимально быстро найти строки, где присутствуют символы в неверной кодировке
Добрый день! Файлы в кодировке CP866 (DOS), но иногда там встречается текст козябрами - с...

Исправить ошибку в неверной кодировке
начал учить плюсы и проблема на первой же компиляции. на форме есть 2 текстбокса и кнопка. когда...

Текст отображается в неверной кодировке

5
Модератор
Эксперт С++
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,700
10.10.2015, 21:31 2
Все distir Вы ввели в pG[0]
а в pG[1] их нет. Вот и выводится белиберда.
0
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 116
10.10.2015, 21:49  [ТС] 3
То есть как можно исправить?

Добавлено через 52 секунды
То есть как можно исправить?
0
7786 / 6554 / 2983
Регистрация: 14.04.2014
Сообщений: 28,628
10.10.2015, 21:59 4
Скопировать дисциплины первого студента всем остальным. Только если они у всех одинаковые, зачем их вообще включать в структуру для каждого студента?
0
0 / 0 / 0
Регистрация: 10.09.2015
Сообщений: 116
10.10.2015, 22:23  [ТС] 5
Не понял. Можно по-подробней?
0
Модератор
Эксперт С++
13502 / 10754 / 6409
Регистрация: 18.12.2011
Сообщений: 28,700
10.10.2015, 22:45 6
Ознакомьтесь где-нибудь с принципами оптимизации Баз Данных.
В частности, поняли бы, что нужно создать отдельную таблицу со списком дисциплин.
А в таблицу студентов записывать только пары Код дисциплины-Оценка.

Грубо исправить Вашу программу можно поставив 32-35 строки вместо 49
0
10.10.2015, 22:45
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
10.10.2015, 22:45
Помогаю со студенческими работами здесь

Чтение файла в неверной кодировке
Работая с текстовым файлом столкнулся с ошибкой чтения. Используя свой любимый метод: Dim zap As...

Почему строка в неверной кодировке?
Возникла проблема при записи конфигурации в текстовый файл из программы. Вначале у меня был такой...

Запись в XML в неверной кодировке
и Почему на выходя после создания xml в пхп отображается $item -&gt; appendChild(...

Запись в файл в неверной кодировке
не могу понять в чём дело.. заработался уже.. в файле выводятся каракули((( а нужно записать 5...

Результат парсинга представлен в неверной кодировке
Делаю парсинг. В переменную сохраняю то, что спарсил(cохраняю в UTF8). Потом из переменной вывожу...

Регулярные выражения при неверной кодировке
(пишу здесь, т.к. отдельного подраздела для регулярок в C# не обнаружил) Здравствуйте. Прошу...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru