Code:
Date su 2 datoteke "PARNI.DAT" i "NEPARNI.DAT" u kojima se nalaze brojevi tipa
double i koje su uredene u rastucem redosledu. Napisati program koji iz postojecih
datoteka formira novu datoteku "BROJEVI.DAT" u kojoj se nalaze svi brojevi iz
postojecih datoteka koji su uredeni u rastucem redosledu.
*/
#include <stdio.h>
#include <conio.h>
main()
{
double a,b,p,o,z;
FILE *pok,*pokp,*pokn;
int par,nepar,i=0;
pok=fopen("BROJEVI.DAT","wb+");
pokp=fopen("PARNI.DAT","wb+");
pokn=fopen("NEPARNI.DAT","wb+");
printf("Unesi koliko ces brojeva u datoteku parni: ");
scanf("%d",&par);
for(i=0;i<par;i++)
{
printf("Unesi clan: ");
scanf("%lf",&p);
fwrite(&p,sizeof p,1,pokp);
}
printf("Unesi koliko ces brojeva u datoteku neparni: ");
scanf("%d",&nepar);
for(i=0;i<nepar;i++)
{
printf("Unesi clan: ");
scanf("%lf",&o);
fwrite(&o,sizeof o,1,pokn);
}
rewind(pokp);
rewind(pokn);
fread(&a,sizeof a,1,pokp);
fread(&b,sizeof b,1,pokn);
//radi dok ne bude kraj obe datoteke
while (!feof(pokp) || !feof(pokn))
{
//1. slucaj) jos nema kraja jedne od datoteka
if (!feof(pokp) && !feof(pokn))
{
if (a<=b)
{
fwrite(&a,sizeof a,1,pok);
fread(&a,sizeof a,1,pokp);
}
else
{
fwrite(&b,sizeof b,1,pok);
fread(&b,sizeof b,1,pokn);
}
}
//kad nastupi kraj za jednu, za drugu ce se ispisati do kraja vrednosti
else if (!feof(pokp))
{
fwrite(&a,sizeof a,1,pok);
fread(&a,sizeof a,1,pokp);
}
else if (!feof(pokn))
{
fwrite(&b,sizeof b,1,pok);
fread(&b,sizeof b,1,pokn);
}
}
rewind(pok);
while(!feof(pok))
{
fread(&z,sizeof z,1,pok);
printf("%lf\n",z);
}
return 0;
}
Trebalo bi da radi, mislim da ima visak deklarisanih promenjivih, to izbrisi...mrzi me da gledam.
A o teksualnim i binarnim datotekama nadji u nekoj literaturi, imas i na netu sigurno dosta materijala.
Na tvom mestu bih otisao u neku knjizaru ili biblioteku i prepisao samo delove vezane za to.
A sta tu ima puno da se pise ne znam, onako da bude sto vise strana pa sta pises nije toliko ni bitno :).
Mislim, šta reći !