Wczytywanie danych z pliku do zaalokowanej pamięci w tablicy dynamicznej.

0

Siemaneczko, mam taki kodzik i próbuję wrzucić text z pliku do tablicy dynamicznej ale mi coś nie idzie.
Wyskakuje takie co:
screenshot-20190108215650.png

int main(void)
{
    int a;
    FILE* fp;
    fopen_s(&fp, "c:\\Basn.txt", "r");
    fseek(fp, 0, SEEK_END);
    a = ftell(fp);
    printf_s("Rozmiar pliku: %d\n\n", a);

    char* tab1 = (char*)malloc(a + 1);
    fgets(tab1, EOF, fp);

    system("Pause");
    return 0;
}
0

Dobra zrobiłem głupotkę dając w fgets EOF. ale jak podaje inna wartość skończoną załóżmy 10 to dzieją się dziwne rzeczy.
Np takie:
screenshot-20190108220940.png

0

Przesuń wskaźnik na początek pliku:

fseek(fp, 0, SEEK_SET);

ponadto sprawdzaj wartości zwracane przez funkcje fopen czy fgets

0

Otwiera się bo mogłem pobrać wielkość pliku za pomocą ftell.
Raz otwarty plik będzie otwarty póki się go nie zamknie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0