Проблема с записью / чтением структуры с двоичным файлом - PullRequest
0 голосов
/ 27 апреля 2020

Я пишу код, который принимает пользовательский ввод и помещает его в структуру в двоичном файле. Но когда я запускаю свой код и ввожу свои данные, в файле ничего не появляется. Что я делаю не так?

Эта структура, которую я использую:

    const int NAME_SIZE = 30;
 struct Student{
    char fname[NAME_SIZE]; 
    int id;   
    };
if (choice==3){
Student person;
char again;
fstream output("output", ios::out | ios::binary);

  cout << "Enter the following data about a "
       << "person:\n";
  cout << "First Name: ";
  cin.getline(person.fname, NAME_SIZE);
  cout << "ID: ";
  cin >> person.id;
  output.write(reinterpret_cast<char *>(&person), sizeof(person));
  output.close();
  return 0;
    }

Вот минимальный воспроизводимый пример:

#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <string>
#include <iomanip>
#include <stdio.h>  
#include <string.h> 

using namespace std;

const int NAME_SIZE = 30;

 struct Student{
    char fname[NAME_SIZE]; 
    int id;   
    };

int main() {
    Student person;
    char again;
    fstream output("output", ios::out | ios::binary);

      cout << "Enter the following data about a "
           << "person:\n";
      cout << "First Name: ";
      cin.getline(person.fname, NAME_SIZE);
      cout << "ID: ";
      cin >> person.id;
      output.write(reinterpret_cast<char *>(&person), sizeof(person));
      output.close();
      return 0;
  }
...