Имеется часть кода:
struct St
{
char Name[30];
int math;
int phys;
int inf;
int chem;
int dateOfBirth;
int group;
double ball;
} Students;
//Заполнение файла данными
void addStudent() {
ofstream file1("list.txt", ios_base::app);
int size = sizeof(file1);
cout << "Enter the Name of student: ";
cin.ignore(numeric_limits<streamsize>::max(), '\n');
gets_s(Students.Name, 29);
file1 << Students.Name << " ";
cout << "Enter the math ball: ";
Students.math = input();
file1 << Students.math << " ";
cout << "Enter the informatics ball: ";
Students.inf = input();
file1 << Students.inf << " ";
cout << "Enter the physics ball: ";
Students.phys = input();
file1 << Students.phys << " ";
cout << "Enter the chemistry ball: ";
Students.chem = input();
file1 << Students.chem << " ";
cout << "Enter the date of birth: ";
Students.dateOfBirth = input();
file1 << Students.dateOfBirth << " ";
cout << "Enter the group of student: ";
Students.group = input();
file1 << Students.group << " ";
cout << "Enter the average ball: ";
cin >> Students.ball;
file1 << Students.ball << "\n";
file1.close();
}
int input() {
int a = 0;
while (true) {
cin >> a;
if (!cin.good()) {
cout << "Wrong input. Please try again!" << endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}
else break;
}
return a;
}
void showNeedableStudents() {
ifstream file1("list.txt");
cout << "Enter the needable group: " << endl;
int input_group = 0;
cin >> input_group;
cout << "Enter the math mark u want: " << endl;
int input_math = 0;
cin >> input_math;
file1.read((char*)&Students, sizeof(Students));
cout << "Math - " << Students.math << endl;
file1.close();
}
Содержимое файла list.txt:
fdahs 5 6 7 8 9 3 4
fgdhkjas 1 3 4 5 6 7 4
Задача - считывание данных структуры из файла. Однако при выполнении команды cout << "Math - " << Students.math << endl;
(функция showNeedableStudents()
) вместо ожидаемой 5 на экран выводится
891302944
. В чём ошибка?
Есть проект в котором содержаться ресурсы ( 2 папки с файлами) нужно сравнивать файлы обеих папокИмена у файлов разные, брать можно в любом...
возможно ли кидать в string поэлементно char, чтобы строка "обрастала" символами? Если да, то как?
ЗдравствуйтеМожно ли захватить кадр после вызова методов surface