プログラムにファイルをループさせ、毎回大量の情報を取り込もうとしています。ただし、2 行が正しく入力された時点では、ファイルの内容に関係なく、常にデフォルトになります。元々は eof while ループでしたが、for ループに変更して修正しました。これが私のコードです:
ifstream furniture;
furniture.open("h://furniture.txt");
for(int i=0;i<=count;i++)
{
type=0;
furniture>>type>>name>>number>>material>>colour>>mattress;
switch (type)
{
case 1:
{
Item* item= new Bed(number, name, material, colour, mattress);
cout<<"working, new bed"<<endl;
v.push_back(item);
cout<<"working pushback"<<endl;
count++;
break;
}
case 2:
{
Item* item= new Sofa(number, name, material, colour);
cout<<"working, new sofa"<<endl;
v.push_back (item);
cout<<"working pushback"<<endl;
count++;
break;
}
case 3:
{
Item* item= new Table(number, name, material, colour);
cout<<"working, new table"<<endl;
v.push_back(item);
cout<<"working pushback"<<endl;
count++;
break;
}
default:
{
cout<<"Invalid input"<<endl;
type=0;
break;
}
}
}
一連のさまざまな解決策を試しましたが、何も問題を解決していないようです。どんな助けでも大歓迎です。