Problema con archivos binarios en C
Publicado por mefesto (8 intervenciones) el 10/07/2020 02:00:04
En un programa que tengo quiero guardar un arreglo de estructuras en un archivo binario, el problema es que solo se me guarda parcialmente la información , dejando sin registrar las otras estructuras.
Codigo :
Fin codigo.
Agradezco su ayuda.
Codigo :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
typedef struct
{
char nombre[50];
char direccion[50];
}EMPLEADOS;
void entradaDatos(EMPLEADOS *p);
int main()
{
FILE* pf;
int des = 0;
do
{
int op;
printf("\n******************************\n");
printf("Menu de opciones : \n");
printf("a).Marca 1 para anadir empleado\nOpcion : ");
scanf("%d", &op);
if (op == 1)
{
EMPLEADOS *p;
pf = fopen("datos.bin", "ab");
if (pf == NULL)
{
printf("ERROR");
return -1;
}
int num;
printf("Numero de empleados a ingresar = ");
scanf("%d", &num);
p = (EMPLEADOS*)malloc(num * sizeof(EMPLEADOS));
for (int i = 0; i < num; i++)
entradaDatos(p + i);
fwrite(p, sizeof(p), num, pf);
fclose(pf);
}
printf("\nAgregar otro mas ? (S/N): ");
scanf(" %d", &des);
} while (des);
return 0;
}
void entradaDatos(EMPLEADOS *p)
{
printf("\nNombre empleado : ");
scanf(" %[^\n]s", p->nombre);
fflush(stdin);
printf("Direccion empleado : ");
scanf(" %[^\n]s",p->direccion);
}
Fin codigo.
Agradezco su ayuda.
Valora esta pregunta
0