Autor
|
Tema: Archivos (Leído 3,728 veces)
|
Beginner Web
Desconectado
Mensajes: 634
youtu.be/0YhflLRE-DA
|
|
Archivos
« en: 21 Noviembre 2018, 18:40 pm » |
|
Hola queria saber si es viable esta forma de cerrar dos veces el archivo, esto funciona 100% pero a mi no me gusta como queda, saludos const int MAX=32; typedef char tcad[MAX]; typedef FILE *archivo; typedef struct usuario{ tcad nombre; tcad apellido; int edad; ... }; void registrar_usuario_nuevo(archivo usuarios_de_facebook) { usuario nuevo; usuarios_de_facebook=fopen("usuarios","ab+"); fflush(stdin); cout<<"Ingrese nombre de usuario: "; gets(nuevo.nombre); fflush(stdin); ... fclose(usuarios_de_facebook); if(consultar_usuario(usuarios_de_facebook,nuevo.nombre)==false){ usuarios_de_facebook=fopen("usuarios.txt","ab"); fwrite(&nuevo,sizeof(nuevo),1,usuarios_de_facebook); } else cout<<"Ya existe un usuario con ese nombre"<<endl; fclose(usuarios_de_facebook); }
|
|
« Última modificación: 21 Noviembre 2018, 19:30 pm por Beginner Web »
|
En línea
|
7w7
|
|
|
CalgaryCorpus
|
|
Re: Archivos
« Respuesta #1 en: 21 Noviembre 2018, 18:52 pm » |
|
Si cierras el archivo justo antes de llamar a la funcion consultar_usuario, que al parecer usa su contenido, no deberia poder acceder a la informacion contenida en el.
|
|
|
En línea
|
|
|
|
srWhiteSkull
|
|
Re: Archivos
« Respuesta #2 en: 21 Noviembre 2018, 18:53 pm » |
|
En teoría deberías meter ese fclose() al final en la condición final y no fuera. Incluso si prescindes del cierre al final funcionaría, y dependiendo de si el fichero está cerrado o no la función obra y retorna un valor que si quieres podrías comprobarlo con fines depurativos https://en.cppreference.com/w/cpp/io/c/fclose
|
|
« Última modificación: 21 Noviembre 2018, 18:55 pm por srWhiteSkull »
|
En línea
|
|
|
|
Beginner Web
Desconectado
Mensajes: 634
youtu.be/0YhflLRE-DA
|
|
Re: Archivos
« Respuesta #3 en: 21 Noviembre 2018, 23:40 pm » |
|
Bueno si, perdonen, aca dejo la funcion que vereifica si el nuevo usuario ya existe bool consultar_usuario(archivo usuarios_de_facebook,tcad usuario_buscado) { usuario extraido; bool encontrado=false; usuarios_de_facebook=fopen("usuarios.txt","rb"); if(usuarios_de_facebook!=NULL){ while(!feof(usuarios_de_facebook) && !encontrado){ fread(&usuarios_de_facebook,sizeof(extraido),1,usuarios_de_facebook); if(!feof(usuarios_de_facebook) && strcmp(extraido.nombre,usuario_buscado)==0) encontrado=true; } } fclose(usuarios_de_facebook); return encontrado; }
|
|
|
En línea
|
7w7
|
|
|
CalgaryCorpus
|
|
Re: Archivos
« Respuesta #4 en: 22 Noviembre 2018, 02:29 am » |
|
Estás cerrando el archivo 3 veces, parece.
|
|
|
En línea
|
|
|
|
Beginner Web
Desconectado
Mensajes: 634
youtu.be/0YhflLRE-DA
|
|
Re: Archivos
« Respuesta #5 en: 22 Noviembre 2018, 04:49 am » |
|
2 para ser mas exactos pero se puede hacer eso o no? Porque la verdad me funciona igual
|
|
|
En línea
|
7w7
|
|
|
CalgaryCorpus
|
|
Re: Archivos
« Respuesta #6 en: 22 Noviembre 2018, 05:27 am » |
|
3 fclose: registrar_usuario_nuevo tiene 2 fclose e invoca a consultar_usuario que tiene otro fclose.
No cierres el archivo si lo vas a usar otra vez.
|
|
|
En línea
|
|
|
|
Beginner Web
Desconectado
Mensajes: 634
youtu.be/0YhflLRE-DA
|
|
Re: Archivos
« Respuesta #7 en: 22 Noviembre 2018, 15:18 pm » |
|
Haa no si 3, bueno hoy resolvere eso
|
|
|
En línea
|
7w7
|
|
|
Beginner Web
Desconectado
Mensajes: 634
youtu.be/0YhflLRE-DA
|
|
Re: Archivos
« Respuesta #8 en: 22 Noviembre 2018, 21:34 pm » |
|
Problema resolvido Y lo resolvi sola, pense que alguien de aca me ayudaria pero se ve que no void registrar_usuario_nuevo(archivo usuarios_de_facebook) { usuario nuevo; usuarios_de_facebook=fopen("usuarios","ab+"); fflush(stdin); cout<<"Ingrese nombre de usuario: "; gets(nuevo.nombre); fflush(stdin); ... fclose(usuarios_de_facebook); if(consultar_usuario(usuarios_de_facebook,nuevo.nombre)==false){ usuarios_de_facebook=fopen("usuarios.txt","ab"); fwrite(&nuevo,sizeof(nuevo),1,usuarios_de_facebook); fclose(usuarios_de_facebook); } else cout<<"Ya existe un usuario con ese nombre"<<endl; }
|
|
|
En línea
|
7w7
|
|
|
Beginner Web
Desconectado
Mensajes: 634
youtu.be/0YhflLRE-DA
|
|
Re: Archivos
« Respuesta #9 en: 22 Noviembre 2018, 21:41 pm » |
|
3 fclose: registrar_usuario_nuevo tiene 2 fclose e invoca a consultar_usuario que tiene otro fclose.
No cierres el archivo si lo vas a usar otra vez.
Es que hay que cerrarlo si vas a llamar a otro metodo que te hace una busqueda secuencial en el mismo bebe, saludos
|
|
|
En línea
|
7w7
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
como puedo convertir archivos flash ha archivos de videos
Diseño Gráfico
|
asitaka_kintaro
|
3
|
6,106
|
22 Enero 2006, 23:53 pm
por Morris
|
|
|
Análisis archivos Extensiones cambiadas - Archivos camuflados - Contenido real
« 1 2 »
Software
|
Esgrimidor
|
11
|
8,986
|
24 Septiembre 2011, 01:53 am
por Esgrimidor
|
|
|
Cómo? Modificar archivos de la carpeta archivos de programas en windows 7
« 1 2 »
Windows
|
anonimo12121
|
10
|
22,646
|
10 Abril 2011, 01:02 am
por Songoku
|
|
|
Archivos dañados tras recuperación de archivos cifrados (virus policia)
Seguridad
|
marianchaparro
|
2
|
10,284
|
17 Mayo 2012, 20:06 pm
por r32
|
|
|
mover archivos con powershel desde un listado de archivos en variable de memoria
Scripting
|
erick_correa
|
1
|
1,692
|
18 Septiembre 2018, 01:26 am
por EdePC
|
|