Czy funkcja eof() nie jest wystarczającym zabezpieczeniem?
Kod: Zaznacz cały
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
void main()
{
const int Max=1000;
float TAB[Max];
int ilosc;
fstream plik("liczby.txt",ios::in);
if(!plik.good())
{
cout << "Wystapil problem przy probie otwarcia pliku tekstowego. Aplikacja zostanie" << endl;
cout << "zamknieta.";
cin.ignore(cin.rdbuf()->in_avail());
cin.get();
return;
}
do
{
cout << "Podaj wymagana ilosc elementow (nie wiecej niz 1000): ";
cin >> ilosc;
}
while(ilosc>Max);
float *tab=TAB;
for(int i=0;(i<ilosc)&&(!plik.eof());i++) plik >> *tab++;
tab=TAB;
plik.close();
int precyzja;
do
{
cout << "Z jaka precyzja maja sie wyswietlac podane liczby? ";
cin >> precyzja;
}
while(precyzja<0||precyzja>8);
for(int i=0;i<ilosc;i++) cout << *tab++ << " ";
cout << endl << endl << "Aby zakonczy, nacisnij ENTER.";
cin.ignore(cin.rdbuf()->in_avail());
cin.get();
}