0 votos
por (760 puntos) en C/C++
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", &amp;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", &amp;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", &amp;prod.codigo);

     fflush(stdin);

     printf("nIngrese el nombre del producto: ");

     gets(prod.nombre);

     fflush(stdin);

     printf("n ingrse el precio");

     scanf("%f",&amp;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(&amp;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 (&amp;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 (&amp;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", &amp;codigoBuscado);

     if ((fichero = fopen("productos.txt", "r")) == NULL) {

          printf ( "No existen productos.n " );

     }

     else {

          fread (&amp;prod, sizeof(prod), 1, fichero);

          while (!feof(fichero) &amp;&amp; (encontrado != 1)) {

                if (codigoBuscado == prod.codigo)

                   encontrado = 1;

                fread (&amp;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",&amp;newpro.precio);

    if ((fichero = fopen ("productos.txt", "r")) == NULL)

          printf ("nERR

Por favor, accede o regístrate para responder a esta pregunta.

Preguntas relacionadas

0 votos
25 respuestas
0 votos
6 respuestas
0 votos
0 respuestas
preguntado por Mariarporras (20 puntos) Abr 4, 2021 en C/C++
0 votos
0 respuestas
preguntado por alexjjj (20 puntos) Dic 4, 2022 en C/C++
Bienvenido a Dudas de Programación, donde puedes hacer preguntas y recibir respuestas sobre los problemas más frecuentes de los lenguajes de programación, frameworks de desarrollo y bases de datos que utilices. Foro de Línea de Código

Categorías

...