Как сделать так что бы имена выводились?

Написал я такой код:

#include<iostream>

using namespace std;
struct Students {
    char surname;
    char name;
    int chem;
    int phys;
    int math;
};

void printInformation(Students student) {
    setlocale(LC_ALL, "rus");
    cout << "ФИО студента: " << student.surname << " " << student.name << endl;
    cout << "Оценка по химий: " << student.chem << endl;
    cout << "Оценка по физике: " << student.phys << endl;
    cout << "Оценка по математике: " << student.math << endl;
}

int main() {
    Students num1 = {Vladmir, Putin, 3, 5, 5 };
    Students num2 = {Milonov, Sergey, 5, 4, 4 };

    printInformation(num1);
    cout << endl;
    printInformation(num2);

    return 0;
}

Но часть с "Vladmir, Putin" и "Milonov, Sergey" не выводиться, пишет что ошибка. Я только недавно начал язык c++ изучать, так что понятия не имею в чём проблема, и как её решить.


Ответы (1 шт):

Автор решения: jNX

Советую вам немного разобраться со стандартными типами переменных. Так же лучше работать с полями через set и get функции которые нужно реализовать самому.

#include<iostream>

using namespace std;
struct Students {
    string surname;
    string name;
    int chem;
    int phys;
    int math;
};

void printInformation(Students student) {
    setlocale(LC_ALL, "rus");
    cout << "ФИО студента: " << student.surname << " " << student.name << endl;
    cout << "Оценка по химий: " << student.chem << endl;
    cout << "Оценка по физике: " << student.phys << endl;
    cout << "Оценка по математике: " << student.math << endl;
}

int main() {
    Students num1 = {"Vladmir", "Putin", 3, 5, 5 };
    Students num2 = {"Milonov", "Sergey", 5, 4, 4 };

    printInformation(num1);
    cout << endl;
    printInformation(num2);

    return 0;
}
→ Ссылка