struct collection
{
string title, author, isbn;
float price;
bool availability;
int borrow;
};
void read1(member a[]);
void read2(collection b[]);
int main()
{
member a[20];
collection b[100];
read1(a);
read2(b);
}
これは私が実行しようとしている機能です。最初は問題なく実行されますが、2 回目の getline では本のタイトルが読み取られず、スキップされます。その後、2 番目の getline でそれを読み取ります。
void read2(collection b[])
{
ifstream database;
string n1;
cout << "Enter second input file name: ";
getline(cin, n1);
database.open(n1.c_str());
if(database.fail())
{
"Bad file. \n" ;
}
else
{
for(int j=0;!database.eof();j++)
{
getline(database, b[j].title);
cout << b[j].title<<endl;
getline(database,b[j].author);
cout<<b[j].author<<endl;
database>>b[j].isbn;
cout<<b[j].isbn<<endl;
database>>b[j].price;
cout<<b[j].price<<endl;
database>>b[j].availability;
cout<<b[j].availability<<endl;
database>>b[j].borrow;
cout<<b[j].borrow;
}
database.close();
}
}