Sunteți pe pagina 1din 5

Creare

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
typedef struct
{
int cod;
char nume[20];
int cant;
float pret;
} PRODUS;
void main()
{
FILE* f;
char numef[30];
PRODUS p;
printf("numefis:");
scanf("%s", numef);
f = fopen(numef, "wb");
if (!f) printf("eroare");
else
{
printf("cod="); scanf("%d", &p.cod);
while (!feof(stdin))
{
getchar();
printf("nume="); scanf("%s", p.nume);
printf("cant="); scanf("%d", &p.cant);
printf("pret=");
scanf("%f", &p.pret);
fwrite(&p, sizeof(PRODUS), 1, f);
printf("cod="); scanf("%d", &p.cod);

}
fclose(f);

}
}
Adaugare
Modificam modul de deschidere “wb” devine “rb+”

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
typedef struct {
int cod;
char nume[30];
int cant;
float pret;
} PRODUS;
void main()
{
FILE* f;
char numef[30];
PRODUS p;
printf("numefis:");
scanf("%s", numef);
f = fopen(numef, "rb+");
if (!f) printf("eroare");
else
{
fseek(f, 0, 2);
printf("cod="); scanf("%d", &p.cod);
while (!feof(stdin))
{
getchar();
printf("nume="); scanf("%s", p.nume);
printf("cant="); scanf("%d", &p.cant);
printf("pret=");scanf("%f", &p.pret);
fwrite(&p, sizeof(PRODUS), 1, f);
printf("cod="); scanf("%d", &p.cod);

}
fclose(f);

}
}
CONSULTARE INTEGRALA
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
typedef struct{
int cod;
char nume[20];
int cant;
float pret;
} PRODUS;
void main()
{
FILE* f;
char numef[30];
PRODUS p;
printf("numefis:");
scanf("%s", numef);
f = fopen(numef, "rb+");
if (!f) printf("eroare");
else
{
FILE* g;
printf("numeraport:");
scanf("%s", numef);
g = fopen(numef, "w");
fread(&p, sizeof(PRODUS), 1, f);
while (!feof(f))
{
fprintf(g, "%4.d %30s %3d %4.1f\n", p.cod, p.nume, p.cant, p.pret);
fread(&p, sizeof(PRODUS), 1, f);
}
fclose(f);
fclose(g);
}
}

SE CONSIDERA UN ALT FISIER TEXT


CONSULTARE CU SELECTIE

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
typedef struct{
int cod;
char nume[20];
int cant;
float pret;
} PRODUS;
void main()
{
FILE* f;
char numef[30];
PRODUS p;
printf("numefis:");
scanf("%s", numef);
f = fopen(numef, "rb+");
if (!f) printf("eroare");
else
{
FILE* g;
printf("numeraport:");
scanf("%s", numef);
g = fopen(numef, "w");
fread(&p, sizeof(PRODUS), 1, f);
while (!feof(f))
{
if (p.cant > 1)//daca cant e mai mare decat 1
fprintf(g, "%4.d %30s %3d %4.1f\n", p.cod, p.nume, p.cant,
p.pret);
fread(&p, sizeof(PRODUS), 1, f);
}
fclose(f);
fclose(g);
}
}
MODIFICARE INTEGRALA
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
typedef struct{
int cod;
char nume[20];
int cant;
float pret;
} PRODUS;
void main()
{
FILE* f;
char numef[30];
PRODUS p;
printf("numefis:");
scanf("%s", numef);
f = fopen(numef, "rb+");
if (!f) printf("eroare");
else
{
fread(&p, sizeof(PRODUS), 1, f);
while (!feof(f))
{
p.cant += 10;
fseek(f, ftell(f) - sizeof(PRODUS), 0);
fwrite(&p, sizeof(PRODUS), 1, f);
fseek(f, 0, 1);
fread(&p, sizeof(PRODUS), 1, f);
}
fclose(f);
}
}

Pentru a vedea rezultatele, apelam o data modificare cu selectie, apoi aplam consultare
integrala.

Programul de mai sus adauga 10 bucati din fiecare element.

S-ar putea să vă placă și