0

Создаю структуру

#include "stdafx.h"
using namespace std;

const int num = 5;

struct Student { string name; int groupNumber; int progress[num]; };

и использую её в программе

#include "stdafx.h"
#include "Student.h"
using namespace std;

int _tmain(int argc, _TCHAR* argv[]) { setlocale (LC_ALL, "Russian"); srand((unsigned)time(NULL));

int n; cout << "Введите количество студентов в группе n = "; cin >> n; cin.ignore();

Student * Group = new Student[n];

for (int i = 0; i < n; ++i) { cout << "Введите ФИО: "; getline (cin, Group[i].name); Group[i].groupNumber = rand()%5 + 1; for (int j = 0; j < num; ++j) { Group[i].progress[j] = rand()%5 + 2; } }

int check = 0; for (int i = 0; i < n; ++i) { int sum = 0; for (int j = 0; j < num; ++j) { sum += Group[i].progress[j]; } double count = (double)sum/5; if (count < 4) continue; cout << "\n\n" << Group[i].name; cout << "\nГруппа: " << Group[i].groupNumber << "\nСредний бал: " << count; ++check; } if (check == 0) { cout << "\nВ массиве нет студентов, средний бал которых выше 4"; }

cout << "\n\n";

delete [] Group;

system("PAUSE"); return 0; }

Латинские символы вводятся нормально, а вместо русских потом выводятся кракозябры. Как это можно исправить?

Oceinic
  • 2,314
ims
  • 155
  • 2
    Перестать учиться программировать в винде.

    Реальная проблема в том, что консоль по умолчанию работает в кодировке cp866, а все остальное (файлы, параметры командной сторки, environment) в cp1251 (она же ANSI).

    --

    Здесь Вы не первый с таким вопросом. Проще почитать ответы, задав в гугле

    site:hashcode.ru кракозябры
    
    

    что-то похожее.

    – avp Oct 10 '13 at 13:00
  • попробуйте перейти на wstring и перевести консоль в Unicode-режим. – VladD Oct 10 '13 at 15:10

0 Answers0