#include<stdio.h>
#include<conio.h>
#include<string.h>
// ime fajla
#define fOsoba "osoba.dat"
#define max_niza 3
// pisanje i citanje 3 strukture ili struktura iz fajla
struct s_osoba{
char ime[20];
char prezime[20];
int godine;
};
void osoba_unos(struct s_osoba *osoba);
void osoba_ispis(struct s_osoba *osoba);
void osoba_fUnos(FILE *fp,struct s_osoba *osoba);
void osoba_fIspis(FILE *fp,struct s_osoba *osoba);
// rad sa vise osoba
void osobe_unos(struct s_osoba osobe[], int max);
void osobe_ispis(struct s_osoba osobe[], int max);
void osoba_fUnosBin(FILE *fp,struct s_osoba *osoba);
void osoba_fIspisBin(FILE *fp,struct s_osoba *osoba);
void osobe_fUnosBin(FILE *fp,struct s_osoba osoba[],int max);
void osobe_fIspisBin(FILE *fp,struct s_osoba osoba[]);
// jedna osoba
struct s_osoba osoba;
// niz osoba
struct s_osoba osobe[max_niza];
main(){
printf("Program za unos i citanje 3 strukture iz binarnog fajla \n");
FILE *fp=fopen(fOsoba,"wb");
//unos strukture sa tastature
osobe_unos(osobe,max_niza);
// upis u fajl
osobe_fUnosBin(fp,&osoba,max_niza);
// citanje iz fajla
osobe_fIspisBin(fp,&osoba);
// ispis strukture na ekran
osobe_ispis(osobe,max_niza);
//
fclose(fp);
getch();
}
void osoba_unos(struct s_osoba *osoba){
printf("osoba.ime=");scanf("%s",&osoba->ime);
printf("osoba.prezime=");scanf("%s",&osoba->prezime);
printf("osoba.godine=");scanf("%d",&osoba->godine);
}
void osoba_ispis(struct s_osoba *osoba){
printf("osoba.ime=%s\n",osoba->ime);
printf("osoba.prezime=%s\n",osoba->prezime);
printf("osoba.godine=%d\n",osoba->godine);
}
void osobe_unos(struct s_osoba osobe[],int max){
printf("\n##################### UNOS #################### \n");
for (int i=0;i<max;i++){
printf("****** OSOBA ****** \n");
struct s_osoba osoba;
osoba_unos(&osoba);
osobe[i]=osoba;
}
}
void osobe_ispis(struct s_osoba osobe[], int max){
printf("\n##################### ISPIS #################### \n");
for (int i=0;i<max;i++){
printf("****** OSOBA ****** \n");
osoba_ispis(&osobe[i]);
}
}
void osoba_fUnos(FILE *fp,struct s_osoba *osoba){
if (fp!=NULL){
fprintf(fp,"%s\n",osoba->ime);
fprintf(fp,"%s\n",osoba->prezime);
fprintf(fp,"%d\n",osoba->godine);
}
else{
printf("Cant read or create file");
}
}
void osoba_fIspis(FILE *fp,struct s_osoba *osoba){
if (fp!=NULL){
rewind(fp); // vrati na pocetak fajla pre citnaja
char str[20];
fgets(str,20,fp); strcpy(osoba->ime,str);
fgets(str,20,fp); strcpy(osoba->prezime,str);
fscanf (fp, "%d", &osoba->godine);
}
else{
printf("Cant read or create file");
}
}
void osoba_fUnosBin(FILE *fp,struct s_osoba *osoba){
if (fp!=NULL){
fwrite(osoba, sizeof(struct s_osoba), 1, fp);
}
else{
printf("Cant read or create file");
}
}
void osoba_fIspisBin(FILE *fp,struct s_osoba *osoba){
if (fp!=NULL){
rewind(fp); // vrati na pocetak fajla pre citnaja
fread(osoba,sizeof(struct s_osoba),1,fp);
}
else{
printf("Cant read or create file");
}
}
void osobe_fUnosBin(FILE *fp,struct s_osoba osobe[],int max){
if (fp!=NULL){
for(int i=0;i<max;i++){
fwrite(&osobe[i], sizeof(struct s_osoba), 1, fp);
}
}
else{
printf("Cant read or create file");
}
}
void osobe_fIspisBin(FILE *fp,struct s_osoba osobe[]){
if (fp!=NULL){
rewind(fp); // vrati na pocetak fajla pre citnaja
// citaj sve dok je velicna procitanog ista kao velicina strukture
struct s_osoba osoba;
int i=0;
while ( fread(&osoba,sizeof(struct s_osoba),1,fp)== sizeof(struct s_osoba)) {
/* byte swap here */
osobe[i]=osoba;
struct s_osoba osoba;
i++;
}
}
else{
printf("Cant read or create file");
}
}
#include<conio.h>
#include<string.h>
// ime fajla
#define fOsoba "osoba.dat"
#define max_niza 3
// pisanje i citanje 3 strukture ili struktura iz fajla
struct s_osoba{
char ime[20];
char prezime[20];
int godine;
};
void osoba_unos(struct s_osoba *osoba);
void osoba_ispis(struct s_osoba *osoba);
void osoba_fUnos(FILE *fp,struct s_osoba *osoba);
void osoba_fIspis(FILE *fp,struct s_osoba *osoba);
// rad sa vise osoba
void osobe_unos(struct s_osoba osobe[], int max);
void osobe_ispis(struct s_osoba osobe[], int max);
void osoba_fUnosBin(FILE *fp,struct s_osoba *osoba);
void osoba_fIspisBin(FILE *fp,struct s_osoba *osoba);
void osobe_fUnosBin(FILE *fp,struct s_osoba osoba[],int max);
void osobe_fIspisBin(FILE *fp,struct s_osoba osoba[]);
// jedna osoba
struct s_osoba osoba;
// niz osoba
struct s_osoba osobe[max_niza];
main(){
printf("Program za unos i citanje 3 strukture iz binarnog fajla \n");
FILE *fp=fopen(fOsoba,"wb");
//unos strukture sa tastature
osobe_unos(osobe,max_niza);
// upis u fajl
osobe_fUnosBin(fp,&osoba,max_niza);
// citanje iz fajla
osobe_fIspisBin(fp,&osoba);
// ispis strukture na ekran
osobe_ispis(osobe,max_niza);
//
fclose(fp);
getch();
}
void osoba_unos(struct s_osoba *osoba){
printf("osoba.ime=");scanf("%s",&osoba->ime);
printf("osoba.prezime=");scanf("%s",&osoba->prezime);
printf("osoba.godine=");scanf("%d",&osoba->godine);
}
void osoba_ispis(struct s_osoba *osoba){
printf("osoba.ime=%s\n",osoba->ime);
printf("osoba.prezime=%s\n",osoba->prezime);
printf("osoba.godine=%d\n",osoba->godine);
}
void osobe_unos(struct s_osoba osobe[],int max){
printf("\n##################### UNOS #################### \n");
for (int i=0;i<max;i++){
printf("****** OSOBA ****** \n");
struct s_osoba osoba;
osoba_unos(&osoba);
osobe[i]=osoba;
}
}
void osobe_ispis(struct s_osoba osobe[], int max){
printf("\n##################### ISPIS #################### \n");
for (int i=0;i<max;i++){
printf("****** OSOBA ****** \n");
osoba_ispis(&osobe[i]);
}
}
void osoba_fUnos(FILE *fp,struct s_osoba *osoba){
if (fp!=NULL){
fprintf(fp,"%s\n",osoba->ime);
fprintf(fp,"%s\n",osoba->prezime);
fprintf(fp,"%d\n",osoba->godine);
}
else{
printf("Cant read or create file");
}
}
void osoba_fIspis(FILE *fp,struct s_osoba *osoba){
if (fp!=NULL){
rewind(fp); // vrati na pocetak fajla pre citnaja
char str[20];
fgets(str,20,fp); strcpy(osoba->ime,str);
fgets(str,20,fp); strcpy(osoba->prezime,str);
fscanf (fp, "%d", &osoba->godine);
}
else{
printf("Cant read or create file");
}
}
void osoba_fUnosBin(FILE *fp,struct s_osoba *osoba){
if (fp!=NULL){
fwrite(osoba, sizeof(struct s_osoba), 1, fp);
}
else{
printf("Cant read or create file");
}
}
void osoba_fIspisBin(FILE *fp,struct s_osoba *osoba){
if (fp!=NULL){
rewind(fp); // vrati na pocetak fajla pre citnaja
fread(osoba,sizeof(struct s_osoba),1,fp);
}
else{
printf("Cant read or create file");
}
}
void osobe_fUnosBin(FILE *fp,struct s_osoba osobe[],int max){
if (fp!=NULL){
for(int i=0;i<max;i++){
fwrite(&osobe[i], sizeof(struct s_osoba), 1, fp);
}
}
else{
printf("Cant read or create file");
}
}
void osobe_fIspisBin(FILE *fp,struct s_osoba osobe[]){
if (fp!=NULL){
rewind(fp); // vrati na pocetak fajla pre citnaja
// citaj sve dok je velicna procitanog ista kao velicina strukture
struct s_osoba osoba;
int i=0;
while ( fread(&osoba,sizeof(struct s_osoba),1,fp)== sizeof(struct s_osoba)) {
/* byte swap here */
osobe[i]=osoba;
struct s_osoba osoba;
i++;
}
}
else{
printf("Cant read or create file");
}
}
No comments:
Post a Comment