Po pierwsze linie w plikach są numerowane od 1 a nie jak tablice od 0. Po drugie polecam stosować taką pętlę.
while(!plik.eof())
{
//odczyt do napotkania znaku konca pliku
}
Tak poprawiony kod powinien być ok :)
#include <fstream>
#include <iostream>
#include <string>
using namespace std;
void dzialanie(int liczba)
{
cout << liczba << " ";
}
bool wczytaj(string nazwapliku)
{
ifstream plik;
plik.open(nazwapliku.c_str());
if (!plik.good())
return false;
int tab[100];
int i = 0;
while (!plik.eof())
{
plik >> tab[i];
if (plik.good())
{
dzialanie(tab[i]);
i++;
}
else break;
}
return true;
plik.close();
}
int main()
{
if (!wczytaj("dane.txt"))
cout << "Nie znaleziono pliku";
return 0;
}