C ++で空のファイルを読み取るにはどうすればよいですか?
空のファイルを読み取るために使用する while ループ条件は何ですか?
!fin.eof()
条件が機能せず、無限ループが作成されるためです。
私はターボ c++ を使用しており、2 つのファイルがあります。音楽ライブラリ ファイルには既にいくつかのアルバムがあります。繰り返されるアルバムを除外して削除し、フィルターファイルに追加する必要があります。
私のコードは次のとおりです。
void albumfilter()
{
song s;
album a;
ifstream fin;
fstream finout;
fin.open("Musiclibrary.txt", ios::binary);
while(!fin.eof())
{
fin.read((char*)&s,sizeof(s));
if(fin.eof())
break;
finout.open("Filteralbum.txt", ios::binary| ios::in| ios::out);
while(!finout.eof())
{
finout.read((char*)&a, sizeof(a));
if(strcmp(a.getfilter_albumname(), s.getalbum())!=0)
{
strcpy(a.getfilter_albumname(),s.getalbum());
finout.write((char*)&a, sizeof(a));
finout.close();
}
}
}
fin.close();
}
このコードは正しいですか?