Необходимо при помощи WIN API создаиь файл, записать в него структуру а затем вывести содержимое файла на экран. Файл создается, данные тоже записываются но на консоль содержимое файла не выводится, ошибок оже нету. Конкретно не захожит в цикл while.
LPCSTR fileName = "file.dat";
DWORD fielAttr = GetFileAttributesA(dir);
HANDLE hFile;
string fileDir = string(dir).append(fileName);
if (fielAttr == FILE_ATTRIBUTE_DIRECTORY)
{
hFile = CreateFile(fileDir.c_str(), GENERIC_WRITE | GENERIC_READ, 0, NULL,
OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL);
if (hFile != INVALID_HANDLE_VALUE) {
cout << "File created...\n\n";
struct Student st[3];
cout << "Name: ";
cin.getline(st[0].name, 40);
cout << "Surname: ";
cin >> st[0].surname;
cout << "Average mark: ";
cin >> st[0].averageMark;
cout << "\n\n";
DWORD dwBytesWritten;
BOOL writeFile = WriteFile(hFile, &st, sizeof(st), &dwBytesWritten, NULL);
if (writeFile) {
cout << "Data has been written to a file!\n\n";
}
else {
cout << "Failed to write data to file! Error code: " << GetLastError() << endl;
return;
}
}
else {
cout << "Failed to create file. Error code: " << GetLastError() << endl;
return;
}
}
DWORD numberOfBytesToRead;
char buff[255];
BOOL readFile = ReadFile(hFile, &buff, sizeof(buff), &numberOfBytesToRead, NULL);
if (readFile != NULL) {
while (numberOfBytesToRead != 0) {
cout << buff << endl;
}
}
else {
cout << "Failed to read file. Error code: " << GetLastError() << endl;
return;
}