在下面的代码中我得到一个我无法摆脱的错误。 exe显示了最后一节两次。我怎样才能解决这个问题? (文件包含以下格式的文本:1;名称; 1;名称2; 2 \ n 1;名称2; 1;名称3; 2
void WZ(string nazwa)
{
std::fstream plik;
plik.open( nazwa.c_str() );
while( true )
{
if( plik.good() )
{
int oferta;
string dane;
int ilosc;
string koszyk;
int status;
int licznik=0;
for(int a=0; a<5;a++)
{
plik>>oferta;
plik.ignore( numeric_limits < streamsize >::max(), ';' );
plik>>dane;
plik.ignore( numeric_limits < streamsize >::max(), ';' );
plik>>ilosc;
plik.ignore( numeric_limits < streamsize >::max(), ';' );
plik>>koszyk;
plik.ignore( numeric_limits < streamsize >::max(), ';' );
plik>>status;
licznik++;
cout<<oferta<<dane<<ilosc<<koszyk<<status<<"licznik: "<<licznik<<endl;
}
}
else
{
break; //zakoñcz wczytywanie danych - wyst¹pi³ jakiœ b³¹d (np. nie ma wiêcej danych w pliku)
}
}
}
答案 0 :(得分:0)
从文件中读取变量后,应检查plik-&gt; fail()。 EOF在读取之后才会声明。文件的“可用结束”与EOF不同。