hola a todos la verdad es q no c como implementar bien mi codigo, este codigo trata sobre ficheros en c++, el problema q tengo es q ala hora de modificar y eliminar me eliminan todo lo q tengo escrito, y cuando modifico si m modifica pero no me deja guardados todos y me los borra,
otro cosa es q cuando voy a mi pc -> disco c -> borlan -> BIN--> Y BUSCO el archivo q crie, y lo abro, me abre pero me da un monton e signos q nada q ver, necesito q me digas xq me aparecen esos signos, espero q me respondan y me digan cual es mi error,xq no encuentro nada
este es mi cogio:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <iostream.h>
#include <string.h>
struct producto {
int codigo;
char nombre[50];
float precio;
};
void menuPrincipal();
void menuproductos();
void nuevoproducto();
void editarproducto();
void eliminarproducto();
void verproducto();
//funcion principal
int main() {
int opcion;
int salir = 0;
while (salir != 1)
{ // while mientras salir sea 0
menuPrincipal();
scanf("%d", &opcion);
switch(opcion) {
case 0:
salir = 1; // opcion salir del menu
break;
case 1:
clrscr();
menuproductos();
break;
} // fin del switch de opcion de menu principal
}// fin del while para salir
printf("nn");
return 0;
}
void menuPrincipal() {
printf("n JEREMIAS IVAN CHIRICOC MARTINEZ 2890-09-4362nn");
printf(" Selecciona la opciona realizar:nn");
printf(" 1- PRODUCTOS.n");
printf(" 0- Salir.nn");
printf(" Opcion: ");
}
void menuproductos(){
int exit = 0;
int opc;
while (exit != 1) {
printf("nMenu Productos.nn");
printf("Selecciona la opciona realizar:n");
printf("1- Nuevo Producto.n");
printf("2- Editar producto.n");
printf("3- Eliminar Producton");
printf("4- Ver producto.n");
printf("0- Salir.nn");
printf("Opcion: ");
scanf("%d", &opc);
switch(opc) {
case 0:
clrscr();
exit = 1;
break;
case 1:
clrscr();
nuevoproducto();
break;
case 2:
clrscr();
editarproducto();
break;
case 3:
clrscr();
eliminarproducto();
break;
case 4:
clrscr();
verproducto();
break;
}
}
}
//agregar nuevo producto
void nuevoproducto() {
struct producto prod;
FILE *fichero;
printf("Datos del Nuevo producto.nn");
printf("Ingrese el codigo del producto: ");
scanf("%d", &prod.codigo);
fflush(stdin);
printf("nIngrese el nombre del producto: ");
gets(prod.nombre);
fflush(stdin);
printf("n ingrse el precio");
scanf("%f",&prod.precio);
if ((fichero = fopen("productos.txt", "a")) == NULL) {
printf ("Error en apertura del fichero para escrituran");
}
else {
//guardamos los datos en el fichero
fwrite(&prod, sizeof(prod), 1, fichero);
printf("nproducto agreado.");
fclose (fichero);
}
printf("nn");
}
//ver todos productos
void verproducto() {
struct producto prod;
FILE *fichero;
if ((fichero = fopen("productos.txt", "r")) == NULL) {
printf ( "No existen productos.n " );
}
else {
fread (&prod, sizeof(prod), 1, fichero);
while (!feof(fichero)) {
printf("nCodigo del producto: %d", prod.codigo);
printf("nNombre del producto: %s", prod.nombre);
printf("nprecio del producto: %f", prod.precio);
fread (&prod, sizeof(prod), 1, fichero);
}
fclose (fichero);
}
}
//editar un producto
void editarproducto(){
int codigoBuscado;
int encontrado = 0;
struct producto prod;
struct producto newpro;
FILE *fichero;
FILE *ficherox;
printf("Modificacion de Datos del Producto.nn");
printf("Ingrese el codigo del producto a modificar: ");
scanf("%d", &codigoBuscado);
if ((fichero = fopen("productos.txt", "r")) == NULL) {
printf ( "No existen productos.n " );
}
else {
fread (&prod, sizeof(prod), 1, fichero);
while (!feof(fichero) && (encontrado != 1)) {
if (codigoBuscado == prod.codigo)
encontrado = 1;
fread (&prod, sizeof(prod), 1, fichero);
}
}
fclose (fichero);
if (encontrado == 1) {
newpro.codigo = codigoBuscado;
fflush(stdin);
printf("nIngrese el nombre del producto: ");
gets(newpro.nombre);
fflush(stdin);
printf("nIngrese precio del producto: ");
scanf("%f",&newpro.precio);
if ((fichero = fopen ("productos.txt", "r")) == NULL)
printf ("nERR