Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: juan228 en 5 Mayo 2015, 19:17 PM

Título: Problemas con fwrite
Publicado por: juan228 en 5 Mayo 2015, 19:17 PM
Hola! Les comento, lo que tiene que hacer el programa es grabar productos dentro de un archivo y listo. El tema esta en que me graba todo MENOS el cod_art y no entiendo por que!

Les dejo el codigo para que puedan verlo

Código (cpp) [Seleccionar]

#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#define DIR "productos.txt"

typedef struct{int cod_art; float peso; char nombre[15], desc[120];}t_producto;

int main()
{
t_producto producto;
FILE *pf;
char opc;

if((pf=fopen(DIR,"w"))==NULL)
{
printf("\nEl Archivo no puede ser abierto");
exit(1);
}

printf("Ingresar un Articulo nuevo (s/n)?: ");
opc=getche();
while(opc=='s')
{
printf("\nIngresar Codigo del Articulo: ");
fflush(stdin);
scanf("%d", &producto.cod_art);
printf("Ingresar Nombre del Articulo: ");
fflush(stdin);
gets(producto.nombre);
printf("Ingresar Descripcion del Articulo: ");
fflush(stdin);
gets(producto.desc);
printf("Ingresar Peso del Articulo: ");
scanf("%f", &producto.peso);
fwrite(&producto,sizeof(producto),1,pf);
printf("\nIngresar un Articulo nuevo (s/n)?: ");
opc=getche();
}
fclose(pf);
return (1);
}
Título: Re: Problemas con fwrite
Publicado por: engel lex en 5 Mayo 2015, 19:21 PM
wow! vengo es por lo que no se debe hacer... cumples la lista casi completa

https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html (https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html)

arregla eso, no vaya a ser un conflicto con fflush(stdin)
Título: Re: Problemas con fwrite
Publicado por: juan228 en 5 Mayo 2015, 19:41 PM
Cita de: engel lex en  5 Mayo 2015, 19:21 PM
wow! vengo es por lo que no se debe hacer... cumples la lista casi completa

https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html (https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html)

arregla eso, no vaya a ser un conflicto con fflush(stdin)

Primero que nada gracias y buena foto de DW :P jajaj

Con respecto al tema de los fflush, solo los pongo antes del ingreso de cadenas, en caso de sacarlo me saltea todo, es decir me hace esto:

Ingrese Codigo: 0000
Ingrese Nombre:
Ingrese Descripcion: _

Es decir me saltea uno, por eso los pongo...

Tenes alguna idea de por que el unico dato que no me considera es el primero??
Título: Re: Problemas con fwrite
Publicado por: engel lex en 5 Mayo 2015, 19:43 PM
leiste el link, hiciste los cambios respectivos y no funcionó?

intentaste hacer debug?

primero prueba las soluciones, luego responde con tus resultados...
Título: Re: Problemas con fwrite
Publicado por: juan228 en 5 Mayo 2015, 20:01 PM
Cita de: engel lex en  5 Mayo 2015, 19:43 PM
leiste el link, hiciste los cambios respectivos y no funcionó?

intentaste hacer debug?

primero prueba las soluciones, luego responde con tus resultados...

Si, te los enumero:


A que te referis con debug ?
Título: Re: Problemas con fwrite
Publicado por: engel lex en 5 Mayo 2015, 20:16 PM
:¬¬ en el tema no es un queja... está la solución para cada caso...

deja conio.h (aunque hay soluciones para ello) cambia los otros 2... teóricamente si cambias el gets, no necesitas fflush