W swoim kodzie dwa razy deklarujesz zmienną typu fstream o tej samej nazwie.
"std::fstream plik;
std::fstream plik( "liczba.txt", std::ios::in );"
Po pierwsze, wspomniałeś, że chcesz tylko czytać liczby z pliku i nie chcesz ingerować w jego zawartość. Z tego tytułu proponowałbym utworzenie obiektu ifstream, który nie zezwala na zmiany w samym pliku.
Po drugie, proponowałbym utworzyć obiekt tak jak w pierwszej linii, a później otworzyć go metodą .open(), której argumentami wywołania są kolejno nazwa otwieranego pliku, a później tryb otwarcia (std::ios::in do odczytu tak jak to zrobiłeś).
Po trzecie, utworzyłeś nieodpowiedni kontener na dane. Jak sam stwierdziłeś, mają to być liczby - stąd nie rozumiem dlaczego utworzyłeś tablicę charów. Jeżeli mają to być liczby typu całkowitego, utwórz tablicę intów. Jeśli mają to być liczby typu zmiennegoprzecinkowego, utwórz tablicę floatów albo doubleów (w zależności od precyzji).
Po czwarte, wywołujesz w nieodpowiedni sposób metodę getline(). Skoro mają to być tylko liczby, które nie są rozdzielone żadnym konkretnym delimiterem, proponowałbym skorzystać bezpośrednio z operatora >> na rzecz obiektu o nazwie. W tym rozwiązaniu mógłbyś w pętli czytać następne liczby, określając warunek końcowy jako napotkanie końca pliku. Jeżeli koniecznie chcesz skorzystać z metody getline(), to wyszukaj najpierw jakich argumentów oczekuje.
Nie wspomnę o bezsensownych bibliotekach "conio.h" i "math.h", których tutaj nie wykorzystujesz. Nie wspominając nawet o wątpliwej jakości "conio.h", która nie powinna istnieć.