У меня есть задача сохранить структуру в двоичный файл, а затем распечатать файл на консоль. Данные записываются в файл, но когда я читаю его, я получаю вывод только первое слово. Я предполагаю, что что-то упустил в своем коде. Буду признателен за вашу помощь.
struct Book
{
char bookName[40];
char author[40];
float rating;
};
Book book;
int bookAmount = 2;
for (int i = 0; i < bookAmount; i++){
cout << "Book Name: ";
cin >> book.bookName;
cout << "Book Author: ";
cin >> book.author;
cout << "Rating: ";
cin >> book.rating;
DWORD dwBytesWritten;
BOOL writeFile = WriteFile(hFile, &book, sizeof(book), &dwBytesWritten, NULL);
}
DWORD numberOfBytesToRead;
char buff[255];
HANDLE hFile = CreateFile("file.dat", GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
BOOL readFile = ReadFile(hFile, &buff, sizeof(book), &numberOfBytesToRead, NULL);
if (readFile != 0) {
while (numberOfBytesToRead != 0) {
cout << buff << endl;
ReadFile(hFile, &buff, sizeof(book), &numberOfBytesToRead, NULL);
}
}