
Problema con archivos y feof
Publicado por Nani (3 intervenciones) el 21/10/2015 08:50:54
Buenas, a ver si alguien puede ayudarme... me pasa lo siguiente...
Cree dos programas con archivos. El primero pide ingresar DNI y teléfono (ambas variables enteras). Lo hace perfecto, me permite más de un ingreso, si cierro y abro el programa me agrega al final del archivo el nuevo ingreso, me permite la busqueda.... si pongo un dni repetido me avisa (osea q la hace bien).
Ahora, arme otro programa que pide ingresar DNI y nombre (entero y cadena). Ingreso el primero perfecto (lo graba bien en el archivo), pero al momento de hacer un nuevo ingreso no me deja. Si yo agrego a mano en el txt un DNI y nombre, cuando realizo la busqueda no reconoce la 2º linea escrita (el q agregue). No esta recorriendo el archivo cuando agrego una cadena.
Dejo los dos programas, capaz a alguien tb le paso y puede ayudarme, porque esto me traba el resto q puedo hacer u.u
Saludos.
Programa DNI y teléfono:
Programa DNI y nombre:
Cree dos programas con archivos. El primero pide ingresar DNI y teléfono (ambas variables enteras). Lo hace perfecto, me permite más de un ingreso, si cierro y abro el programa me agrega al final del archivo el nuevo ingreso, me permite la busqueda.... si pongo un dni repetido me avisa (osea q la hace bien).
Ahora, arme otro programa que pide ingresar DNI y nombre (entero y cadena). Ingreso el primero perfecto (lo graba bien en el archivo), pero al momento de hacer un nuevo ingreso no me deja. Si yo agrego a mano en el txt un DNI y nombre, cuando realizo la busqueda no reconoce la 2º linea escrita (el q agregue). No esta recorriendo el archivo cuando agrego una cadena.
Dejo los dos programas, capaz a alguien tb le paso y puede ayudarme, porque esto me traba el resto q puedo hacer u.u
Saludos.
Programa DNI y teléfono:
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#include <stdlib.h>
#include <stdio.h>
struct arch{
int tel;
int dni;
}AR;
int main()
{
int sen=1, xdni=0, opc1=0, opc2=0, xtel=0;
FILE*fi=fopen("ficha001.txt", "a+");
if(fi==NULL)
{
printf("Archivo inexistente!\n");
fi=fopen("ficha001.txt", "a+");
system("pause");
system("cls");
}
while(sen=1)
{
printf("Ingrese dni: ");
scanf("%d", &xdni);
while(!feof(fi))
{
fscanf(fi, "%d", &AR.dni);
if(AR.dni!=xdni)
{
if(feof(fi))
{
printf("Ingrese telefono: ");
scanf("%d", &xtel);
}
}
else
{
printf("DNI ya existente!\n");
system("pause");
system("cls");
printf("Ingrese otro dni: ");
xdni=0;
scanf("%d", &xdni);
rewind(fi);
}
}
printf("Desea confirmar el alta? 1. Si 2. No: ");
scanf("%d", &opc1);
if(opc1==1)
{
AR.dni=xdni;
AR.tel=xtel;
fprintf(fi, "%-9d %-10d\r\n", AR.dni, AR.tel);
system("pause");
}
if(opc1==2)
{
printf("Gracias por utilizar nuestro servicio!\n");
system("pause");
}
printf("Desea realizar otra alta? 1. Si 2. No: ");
scanf("%d", &opc2);
if(opc2==1)
{
system("cls");
rewind(fi);
sen=1;
}
if(opc2==2)
{
fclose(fi);
sen=0;
return 0;
}
}
return 0;
}
Programa DNI y nombre:
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <stdlib.h>
#include <stdio.h>
struct arch{
char nom[15];
int dni;
}AR;
int main()
{
int sen=1, xdni=0, opc1=0, opc2=0;
char xnom[15];
FILE*fi=fopen("ficha003.txt", "a+");
if(fi==NULL)
{
printf("Archivo inexistente!\n");
fi=fopen("ficha003.txt", "a+");
system("pause");
system("cls");
}
while(sen=1)
{
printf("Ingrese dni: ");
scanf("%d", &xdni);
while(!feof(fi))
{
fscanf(fi, "%d", &AR.dni);
if(AR.dni!=xdni)
{
if(feof(fi))
{
printf("Ingrese nombre: ");
fflush(stdin);
gets(xnom);
}
}
else
{
printf("DNI ya existente!\n");
system("pause");
system("cls");
printf("Ingrese otro dni: ");
xdni=0;
scanf("%d", &xdni);
rewind(fi);
}
}
printf("Desea confirmar el alta? 1. Si 2. No: ");
scanf("%d", &opc1);
if(opc1==1)
{
AR.dni=xdni;
strcpy(AR.nom, xnom);
fprintf(fi, "%-9d %-16s\r\n", AR.dni, AR.nom);
system("pause");
}
if(opc1==2)
{
printf("Gracias por utilizar nuestro servicio!\n");
system("pause");
}
printf("Desea realizar otra alta? 1. Si 2. No: ");
scanf("%d", &opc2);
if(opc2==1)
{
system("cls");
rewind(fi);
sen=1;
}
if(opc2==2)
{
fclose(fi);
sen=0;
return 0;
}
}
return 0;
}
Valora esta pregunta


0