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

Кодировка ввода и вывода - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ считая что год не высокосный и известен день, на который приходится 1 января, подсчитать количество понедельников в году приходящихся на 13-е число http://www.cyberforum.ru/cpp-beginners/thread974680.html
считая что год не высокосный и известен день, на который приходится 1 января, подсчитать количество понедельников в году приходящихся на 13-е число
C++ Определить, попадает ли точка с заданными координатами в область, закрашенную из рисунке серым цветом Написать программу, которая определяет, попадает ли точка с заданными координатами в область, закрашенную из рисунка серым цветом. Результат работы программы вывести в виде текстового сообщения. Параметр R вводится с клавиатуры. Заранее большое спасибо! http://www.cyberforum.ru/cpp-beginners/thread974656.html
Ошибка с gech, int, ничего не выходит C++
// Лабораторная работа № // #include "stdio.h" #include "stdlib.h" #include "math.h" #include <termios.h> #include <unistd.h> //#include "conio.h" ошибка, не существующий каталог, поэтому пытался подключить описание getch int getch( ) {
C++ Запись в файл кирилицы
Добрый день , облазил все форумы ни как не могу прояснить для себя , вопрос как писать в кирилеце в файл. Компилятор DEC cpp. Вывод настроил с помощью setlocale(LC_ALL,"Russian"). Как я понял кодировка консоли СР866 (DOS), я задаю кодировку Windows 1251 , и получаю на экране Кирилицу. Как ее же записать вфайл ?
C++ Найти площадь вписанного в окружность радиуса R неправильного 10-угольника http://www.cyberforum.ru/cpp-beginners/thread974644.html
помогите написть задачу на С++ Найти площадь вписанного в окружность радиуса R неправильного 10-угольника, если его стороны – это хорды, стягивающие дуги 2п/55, 4п/55, 6п/55,...20п/55 рад. Длина хорды вычисляется по формуле L=2Rsin(D/2), где D – размер дуги, стягиваемой хордой, в радианах. Нужно суммировать площади 10 равнобедренных треугольников с общей вершиной в центре круга, а их...
C++ Линейная программа (в чем ошибка) Дана задача: Напишите программу-модель анализа пожарного датчика в помещении, которая выводит сообщение «Пожарная ситуация», если температура (ее значение вводится с клавиатуры) в комнате превысила 60ºС. #include <iostream> using namespace std; void (int argc, char* argv) { int temp = 0; //температура while(1) { подробнее

Показать сообщение отдельно
Heidel
 Аватар для Heidel
110 / 110 / 7
Регистрация: 11.10.2011
Сообщений: 647
11.10.2013, 13:09     Кодировка ввода и вывода
В программу нужно ввести данные на русском языке, потом вывести

C++
1
2
3
4
5
6
7
8
9
10
#include "stdafx.h"
using namespace std;
 
const int num = 5;
 
struct Student  {
    string name;
    int groupNumber;
    int progress[num];
};
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 "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/num;
        if (count < 4) continue;
        cout << "\n\n" << Group[i].name;
        cout << "\nГруппа: " << Group[i].groupNumber << "\nСредний бал: " << count;
        ++check;
    }
    if (check == 0)
    {
        cout << "\nВ массиве нет студентов, средний бал которых выше 4";
    }
 
    double * mas = new double[n];
    for (int i = 0; i < n; ++i)
    {
        int sum = 0;
        for (int j = 0; j < num; ++j)
        {
            sum += Group[i].progress[j];
        }
        mas[i] = (double)sum/num;
    }
 
    cout << "\n\nМассив средних баллов: ";
    for (int i = 0; i < n; ++i)
    {
        cout << mas[i] << "  ";
    }
 
 
    cout << "\n\n";
 
    delete [] Group;
    delete [] mas;
 
    system("PAUSE");
    return 0;
}
В гугле на забанили, но способы, которые нашлись на тут на форуме, не работают
Если добавить
C++
1
#include <Windows.h>
и
C++
1
2
SetConsoleCP(1251);
 SetConsoleOutputCP(1251);
, то введенные данные русскими символами выводятся, но при этом в
C++
1
cout << "Введите количество студентов в группе n = ";
выводятся кракозябры. wstring тоже не работает. Как сделать так, чтобы ввод и вывод русских символов корректно работали одновременно?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru