我正在尝试将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()而不是&lt;&lt;根据我的任务
答案 0 :(得分:1)
如果您使用的是Visual Studio:也许您正在查找错误的目录,则在调试时将在Projects\Project_Name\Project_Name
中创建该文件,而不是Projects\Project_Name\Debug
。
答案 1 :(得分:0)
Streams的工作方式与cout
和cin
类似。使用
ref << rec.name << "," << rec.phoneNum << "," << rec.balance << endl;