Ошибки в коде из-за нескольких функций error C2065, error C2182, error C2064, error C2365
Пишу в Visual Studio 2019. У меня было такое задание:
Создать структуру, описывающую студенческую группу. Данные структуры: номер (название) группы (например, АА-14), количество студентов в группе, количество иногородних студентов, количество иностранных студентов. Создать функции: вывод на экран общего количества студентов, вывод на экран общего количества иногородних студентов в потоке, вывод на экран количества иностранных студентов в потоке, перезапись данных структуры в исходный файл.
Файл создал, в него все писалось.
#include <stdexcept>
#include <iostream>
#include <fstream>
#include <vector>
using namespace std;
void inostran(society& akvt);
void inogorodnie(society& akvt);
void obsh_kol(society& akvt);
void rewriting(society& akvt);
struct society
{
string name_group; // наименование группы
int number_group; // номер группы
int amount_student; // количество студентов
int inogorodnie; // иногородние студенты
int inostran; // иностранные студенты
};
int main()
{
int i = 0, a = 0, n = 1, x = 0;
setlocale(LC_ALL, "rus");
society akvt;
string name;
fstream Fout("D:\\structura.txt"); // открываем основной файл для записи в него значений
cout << " Введите название Группы - ";
cin >> name;
akvt.name_group = name;
Fout << name << "; "; // наименование группы
cout << " Введите номер Группы - ";
cin >> x;
akvt.number_group = x;
Fout << x << "; "; // номер группы
cout << " Введите количество студентов - ";
cin >> x;
Fout << x << "; "; // количество студентов
cout << " Введите кол-во иногородних студентов в группе - ";
cin >> x;
akvt.inogorodnie = x;
Fout << x << "; "; // кол-во иногородних студентов
cout << " Введите кол-во иностранцев в группе - ";
cin >> x;
akvt.inostran = x;
Fout << x << "; "; // кол-во иностранцев
Fout.close();
while (a != 5)
{
cout << " 1)Bывод на экран общего количества студентов. " << endl;
cout << " 2)Bывод на экран общего количества иногородних студентов в потоке. " << endl;
cout << " 3)Bывод на экран количества иностранных студентов в потоке. " << endl;
cout << " 4)Перезапись данных структуры в исходный файл. " << endl;
cout << " 5)Для выхода нажмите пятерочку(5) " << endl;
cin >> a;
switch (a)
{
case '1': obsh_kol(akvt);
case '2': inogorodnie(akvt);
case '3': inostran(akvt);
case '4': rewriting(akvt);
case '5': exit(1);
}
}
system("pause");
return 0;
}
void inostran(society& akvt)
{
cout << " Кол-во иностранных студентов равно " << akvt.inostran;
}
void inogorodnie(society& akvt)
{
cout << " Кол-во иногородних студентов равно " << akvt.inogorodnie;
}
void obsh_kol(society& akvt)
{
cout<< " Общее кол-во студентов равно " << akvt.amount_student;
}
void rewriting(society& akvt)
{
int x;
string name;
fstream Fout("D:\\structura.txt"); // открываем основной файл для записи в него значений
cout << " Введите название Группы - ";
cin >> name;
akvt.name_group = name;
Fout << name << "; "; // наименование группы
cout << " Введите номер Группы - ";
cin >> x;
akvt.number_group = x;
Fout << x << "; "; // номер группы
cout << " Введите количество студентов - ";
cin >> x;
akvt.amount_student = x;
Fout << x << "; "; // количество студентов
cout << " Введите кол-во иногородних студентов в группе - ";
cin >> x;
akvt.inogorodnie = x;
Fout << x << "; "; // кол-во иногородних студентов
cout << " Введите кол-во иностранцев в группе - ";
cin >> x;
akvt.inostran = x;
Fout << x << "; "; // кол-во иностранцев
Fout.close();
}
После запуска кода вылезло немало ошибок:
1>C:\Users\artem\OneDrive\Рабочий стол\лабораторные работы\5 практическая\5 практическая.cpp(11,15): error C2065: society: необъявленный идентификатор
1>C:\Users\artem\OneDrive\Рабочий стол\лабораторные работы\5 практическая\5 практическая.cpp(11,24): error C2065: akvt: необъявленный идентификатор
практическая.cpp(11,28): error C2182: inostran: недопустимое использование типа "void"
практическая.cpp(12,18): error C2065: society: необъявленный идентификатор
практическая.cpp(12,27): error C2065: akvt: необъявленный идентификатор
практическая.cpp(12,31): error C2182: inogorodnie: недопустимое использование типа "void"
практическая.cpp(13,15): error C2065: society: необъявленный идентификатор
практическая.cpp(13,24): error C2065: akvt: необъявленный идентификатор
практическая.cpp(13,28): error C2182: obsh_kol: недопустимое использование типа "void"
практическая.cpp(14,16): error C2065: society: необъявленный идентификатор
практическая.cpp(14,25): error C2065: akvt: необъявленный идентификатор
практическая.cpp(14,29): error C2182: rewriting: недопустимое использование типа "void"
практическая.cpp(67,19): error C2064: результатом вычисления фрагмента не является функция, принимающая 1 аргументов
практическая.cpp(68,19): error C2064: результатом вычисления фрагмента не является функция, принимающая 1 аргументов
практическая.cpp(69,19): error C2064: результатом вычисления фрагмента не является функция, принимающая 1 аргументов
практическая.cpp(70,19): error C2064: результатом вычисления фрагмента не является функция, принимающая 1 аргументов
практическая.cpp(77,6): error C2365: inostran: переопределение; предыдущим определением было "переменная данных"
практическая.cpp(11): message : см. объявление "inostran"
практическая.cpp(81,6): error C2365: inogorodnie: переопределение; предыдущим определением было "переменная данных"
практическая.cpp(12): message : см. объявление "inogorodnie"
практическая.cpp(85,6): error C2365: obsh_kol: переопределение; предыдущим определением было "переменная данных"
практическая.cpp(13): message : см. объявление "obsh_kol"
практическая.cpp(89,6): error C2365: rewriting: переопределение; предыдущим определением было "переменная данных"
практическая.cpp(14): message : см. объявление "rewriting"
Пожалуйста,помогите
Ответы (1 шт):
Ну посмотрите - вы же объявляете свое society ПОСЛЕ объявления
void inostran(society& akvt);
понятно, что компилятор в недоумении...
Если еще добавите
#include <string>
то код даже будет компилироваться :)