fstream を関数に渡して、構造体をファイルに書き込もうとしています。ストリームを参照渡しする必要があることは承知していますが、実行時にファイルに何も書き込まれていません。私がこれまでに持っているものは次のとおりです。
struct Record
{
char name [16];
char phoneNum [16];
float balance;
};
void newRec (fstream &);
int main()
{
fstream ref;
ref.open("prog2.dat", ios::in | ios::out | ios::app | ios::binary);
if(!ref.fail() )
{
int choice = menu(ref);
system("CLS");
while(choice != 6)
{
choice = menu(ref);
system("CLS");
}
}
else
cout << "Error opening file. " << endl;
return 0;
}
void newRec (fstream& ref)
{
Record rec;
cout << "Enter customer name: ";
cin.ignore();
cin.getline(rec.name, sizeof(rec.name));
cout << "Enter customer phone number: ";
cin >> rec.phoneNum;
cout << "Enter beginning account balance: ";
cin >> rec.balance;
ref.write(reinterpret_cast<char*>(&rec), sizeof(rec));
}
rec は 3 メンバーの構造体です。これがうまくいかない理由はありますか?助けていただければ幸いです。注:割り当てに従って、 << ではなく .write() を使用する必要があります