Ongelmaa voidaan osittain ratkaista lukemalla tiedostoa merkkijonoon aina rivi kerrallaan:
ifstream(fi); string rivi; char nimike[20]; double hinta; int kpl;
...
while ( getline(fi,rivi) ) {
if ( rivi <= "" ) continue;
sscanf(rivi.c_str(),"%s |%lf |%d",nimike,&hinta,& kpl);
...
}
...
Tässäkin vaihtoehdossa on vielä muutamia huonoja puolia: