Имеется две структуры "Worker_struct" и "Login" из структуры Worker записываю в файл "worker_name" и генерирую пароль для данного пользователя. После чего читаю файл login.data, записываю данные в структуру "Login" и вывожу на экран.
Результат вывода на экран
Подскажите, что делаю не так?
Код программы:
struct Worker_struct {
char worker_name[90];
double worker_salary;
char worker_phone[90];
char worker_email[90];
char worker_position[90];
};
struct Login {
char username[90];
char password[90];
};
Worker_struct * readFile(int *workerCount);
int main()
{
srand(time(NULL));
Login login_struct;
int workerCount;
Worker_struct *worker_struct = readFile(&workerCount);
ofstream file;
file.open("login.data", ios::binary);
int rNum;
char alphanum[] =
"0123456789"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
"abcdefghijklmnopqrstuvwxyz";
for (int i = 0; i < workerCount; i++)
{
file.write((char*)worker_struct[i].worker_name,sizeof(worker_struct[i].worker_name));
for (int i = 0; i < 6; ++i) {
rNum = rand() % sizeof(alphanum);
file << alphanum[rNum];
}
file << endl;
}
file.close();
ifstream readFile;
readFile.open("login.data", ios::binary);
if (!readFile) cout << "Couldn't Open File\n";
else {
readFile.seekg(0, ios::end);
int fileSize = readFile.tellg();
int count = fileSize / sizeof(Login);
readFile.seekg(0, ios::beg);
Login * login_struct = new Login[count];
readFile.read((char*)login_struct, count * sizeof(Login));
readFile.close();
for (int i = 0; i < count; i++)
{
cout << "Username: " << login_struct[i].username<< "\n";
cout << "Password: " << login_struct[i].password << "\n";
}
}
return 0;
}
Worker_struct *readFile(int *workerCount)
{
ifstream readFile;
readFile.open("coworker.data", ios::binary);
if (!readFile) cout << "Couldn't Open File\n";
else {
readFile.seekg(0, ios::end);
int fileSize = readFile.tellg();
int count = fileSize / sizeof(Worker_struct);
readFile.seekg(0, ios::beg);
Worker_struct * worker_struct = new Worker_struct[count];
readFile.read((char*)worker_struct, count * sizeof(Worker_struct));
readFile.close();
*workerCount = count;
return worker_struct;
}
}