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