Mam problem z wczytaniem danych,liczb z pliku do nowej tablicy.
Efekt tego programu dla np. rozmiaru tablicy 12 :
24 51 6 11 75 17 33 17 20 41 71 29
0 0 0 0 0 0 0 0 0 0 0 0
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int rand_int (int a, int b){
return (a + rand()%(b-a+1));
}
void wypisz(int *tab,int size)
{
for(int i=0;i<size;i++)
printf("%3d ",tab[i]);
}
int main(int argc, char *argv[])
{
int *tab,*tab1,*tab2;
time_t czas;
srand((unsigned int)time(&czas));
int size;
FILE *plik_txt=fopen(argv[1],"r+");
FILE *plik_bin=fopen(argv[2],"rb+");
if(argc!=3){
printf("Nie podałeś 2 plików wejściowych.\n");
return(1);
}
if(plik_txt==NULL){
perror("Error");
printf("Nie można otworzyć pliku\n");
}
if(plik_bin==NULL){
perror("Error");
printf("Nie można otworzyć pliku\n");
}
printf("Podaj rozmiar tablicy double:");
scanf("%d",&size);
tab=malloc(size*sizeof(int));
for(int i=0;i<size;i++)
tab[i]=rand_int(0,100);
for(int i=0;i<size;i++)
printf("%3d ",tab[i]);
printf("\n");
for(int i=0;i<size;i++){
fprintf(plik_txt,"%3d \n",tab[i]);
fprintf(plik_bin,"%3d \n",tab[i]);
fprintf(plik_bin,"%3d \n",tab[i]);
}
tab1=malloc(size*sizeof(int));
tab2=malloc(size*sizeof(int));
int i=0,k=0;
char ch;
while(!feof(plik_txt)){
fscanf(plik_txt,"%3d ",&tab1[i]);
//printf("%3d ",tab1[i]);
i++;
}
//while(!feof(plik_bin)){
//fscanf(plik_bin,"%d", &tab2[k]);
//k++;}
wypisz(tab1,size);
printf("\n");
//wypisz(tab2,size);
printf("\n");
fclose(plik_txt);
fclose(plik_bin);
free(tab1);
free(tab2);
return 0;
}