Witam,
Od niedawna uczę się programować w C. Napotkałem problem z takim oto zadaniem:
5. Napisz program, który odczyta plik złożony z liczb całkowitych i skopiuje odczytane liczby do komórek tablicy dynamicznej. Tablica powinna mieć wielkość dostosowaną do liczby odczytanych elementów z pliku. Nazwa pliku powinna zostać podana z linii poleceń.
Napisałem kawałek takiego kodu:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char* argv[])
{
FILE *source;
int a, licznik, rozmiar;
char *tablica;
rozmiar=0;
if((source=fopen(argv[1],"r"))==NULL)
return -1;
while(fscanf(source,"%d",&a)==1)
rozmiar++;
if((tablica=(char *)malloc(rozmiar))==NULL)
return -1;
printf("%d liczb zostanie skopiowanych!\n",rozmiar);
for(licznik=0;licznik<rozmiar;licznik++){
fscanf(source,"%d",tablica);
tablica++;
}
puts(tablica);
fclose(source);
free(tablica);
return 0;
}
Mam już zrealizowany rozmiar zależny od liczby odczytanych elementów z pliku, co wiązało się z przeczytaniem całego pliku. Niestety program nie działa jak należy tzn. nie ma błędów ale tablica ma w sobie jakieś dziwne wartości zamiast tych liczb, które są w pliku. Może ktoś by mi podsunął pomysł jak mógłbym to zadanie wykonać?