Buenas gente, miren tengo que entregar un menu para la universidad y ya que me tiene loco esta parte paso por aca a pedir su ayuda.
mi problema es que no puedo modificar los registros guardados en un txt. e intentado con varios codigos y nada, dejo el codigo (solo tiene ingresar y consultar )haber si me pueden ayudar
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
FILE*doc;
int cont=0;
char s;
char c;
struct computador{
char codigometro[5];
char serial[10];
char modelo [15];
char marca [15];
char memoria [7];
char discoduro [7];
char procesador [15];
char velocidapro [7];
char serialmo [10];
char modelomo [15];
char marcamo[15];
char serialmou [10];
char modelomou [15];
char marcamou [15];
char serialte [10];
char modelote [15];
char marcate [15];
char serialcor [10];
char modelocor [15];
char marcacor [15];
};//cierre struct computador
struct lapto{
char codigometro [5];
char serial [10];
char modelo [15];
char marca[15];
char memoria[7];
char discoduro [7];
char procesador [15];
char velocidapro [7];
};//cierre structlapto
int main(){
char op;
lapto lapto;
computador computador;
int opcion;
system("color 1f");
printf("\n\n\n\n\t\t\t\t--- BIENVENIDOS ---");
printf("\n\n\t\t\tPrograma de Registro de Requerimientos ");
printf("\n\t\t\t de la Gerencia de Soporte Tecnico ");
printf("\n\t\t\t\tde C.A. Metro de Caracas \n\n\n\n\t\t\t");
system ("PAUSE");
system ("CLS");
do{
printf("\n\n\t\t\t\t Menu Principal");
printf("\n\n\n\t\t\t Ingresar Equipo (1)");
printf("\n\n\t\t\t Consultar Equipo (2)");
printf("\n\n\t\t\t Modificar Equipo (3)");
printf("\n\n\t\t\t Eliminar Equipo (4)");
printf("\n\n\t\t\t Creditos del proyecto (5)");
printf("\n\n\t\t\t Salir del programa (6)");
printf("\n\n\n\n\t\t\t Digite el numero de su opcion: ");
scanf ("%d",& opcion);
system ("CLS");
switch (opcion) {//switch menu principal
case 1:
printf("\n\n\t\t\t\tMenu Ingresar");
printf("\n\n\t\t\t\tComputador (1)");
printf("\n\n\t\t\t\tLaptop (2)");
printf("\n\n\n\n\t\tElija por teclado la opcion con la cual trabajara: ");
scanf ("%d",& opcion);
system ("CLS");
switch (opcion) //switch ingresar
{
case 1:
doc = fopen("computador.txt","a");
do{
printf("\nIntroduzca los siguientes datos");
printf("\n\n Codigo Metro: ");
scanf("%s",computador.codigometro);
printf("\n\t\t\t\t COMPUTADOR ");
printf("\n\n\tSerial: ");
scanf("%s",computador.serial);
printf("\n\tMarca: ");
scanf("%s",computador.marca);
printf("\n\tModelo: ");
scanf("%s",computador.modelo);
printf("\n\tMemoria RAM: ");
scanf("%s",computador.memoria);
printf("\n\tCapacidad Disco Duro: ");
scanf("%s",computador.discoduro);
printf("\n\tModelo procesador: ");
scanf("%s",computador.procesador);
printf("\n\tVelocidad del procesador: ");
scanf("%s",computador.velocidapro);
printf("\n\t\t\t\t MONITOR ");
printf("\n\n\tSerial: ");
scanf("%s",computador.serialmo);
printf("\n\tMarca: ");
scanf("%s",computador.marcamo);
printf("\n\tModelo: ");
scanf("%s",computador.modelomo);
printf("\n\t\t\t\t TECLADO ");
printf("\n\n\tSerial: ");
scanf("%s",computador.serialte);
printf("\n\tMarca: ");
scanf("%s",computador.marcate);
printf("\n\tModelo: ");
scanf("%s",computador.modelote);
printf("\n\t\t\t\t MOUSE ");
printf("\n\n\tSerial: ");
scanf("%s",computador.serialmou);
printf("\n\tMarca: ");
scanf("%s",computador.marcamou);
printf("\n\tModelo: ");
scanf("%s",computador.modelomou);
printf("\n\t\t\t\t CORNETAS ");
printf("\n\n\tSerial: ");
scanf("%s",computador.serialcor);
printf("\n\tMarca: ");
scanf("%s",computador.marcacor);
printf("\n\tModelo: \n\n");
scanf("%s",computador.modelocor);
system ("PAUSE");
fprintf(doc,"\n\n Codigo Metro: %s",computador.codigometro);
fprintf(doc,"\n\t\t\t\t COMPUTADOR ");
fprintf(doc,"\n\n Serial: %s",computador.serial);
fprintf(doc,"\t\t Marca: %s",computador.marca);
fprintf(doc,"\t\t Modelo: %s\n\n",computador.modelo);
fprintf(doc," Memoria RAM: %s",computador.memoria);
fprintf(doc,"\t\t\tCapacidad Disco Duro: %s",computador.discoduro);
fprintf(doc,"\n\n Modelo procesador: %s",computador.procesador);
fprintf(doc,"\t Velocidad del procesador: %s",computador.velocidapro);
fprintf(doc,"\n\n\t\t\t\t MONITOR ") ;
fprintf(doc,"\n\n Serial: %s",computador.serialmo);
fprintf(doc,"\t\t Marca: %s",computador.marcamo);
fprintf(doc,"\t\t Modelo: %s\n\n",computador.modelomo);
fprintf(doc,"\n\t\t\t\t TECLADO ");
fprintf(doc,"\n\n Serial: %s",computador.serialte);
fprintf(doc,"\t\t Marca: %s",computador.marcate);
fprintf(doc,"\t\t Modelo: %s\n\n",computador.modelote);
fprintf(doc,"\n\t\t\t\t MOUSE ");
fprintf(doc,"\n\n Serial: %s",computador.serialmou);
fprintf(doc,"\t\t Marca: %s",computador.marcamou);
fprintf(doc,"\t\t Modelo: %s\n\n",computador.modelomou);
fprintf(doc,"\n\t\t\t\t CORNETAS ");
fprintf(doc,"\n\n Serial: %s",computador.serialcor);
fprintf(doc,"\t\t Marca: %s",computador.marcacor);
fprintf(doc,"\t\t Modelo: %s",computador.modelocor);
fprintf(doc,"\n\n\t\t\t----------------------------------------------\n\n");
fprintf(doc,"\n\n\t\t\t----------------------------------------------\n\n");
cont++;
printf("\nIngresar otro? (s/n)");
fflush( stdin );
scanf( "%c", &s);
system ("CLS");
}while ( s != 'n'&& s != 'N' );
fclose(doc);
printf ("Usted ingreso %d registros nuevos \n\n\n",cont);
system ("PAUSE");
break;
case 2:
doc = fopen("lapto.txt","a");
do{
printf(" Introduzca los siguientes datos");
printf("\n Codigo Metro: ");
scanf("%s",lapto.codigometro);
printf("\n Serial: ");
scanf("%s",lapto.serial);
printf("\n Marca: ");
scanf("%s",lapto.marca);
printf("\n Modelo: ");
scanf("%s",lapto.modelo);
printf("\n Memoria RAM: ");
scanf("%s",lapto.memoria);
printf("\n Disco Duro: ");
scanf("%s",lapto.discoduro);
printf("\n Modelo procesador: ");
scanf("%s",lapto.procesador);
printf("\n velocidad del procesador: ");
scanf("%s",lapto.velocidapro);
fprintf(doc,"\n\n Codigo Metro: %s",lapto.codigometro);
fprintf(doc,"\n\t\t\t\t LAPTOS ");
fprintf(doc,"\n\n Serial: %s",lapto.serial);
fprintf(doc,"\t\t Marca: %s",lapto.marca);
fprintf(doc,"\t\t Modelo: %s\n\n",lapto.modelo);
fprintf(doc," Memoria RAM: %s",lapto.memoria);
fprintf(doc,"\t\t\t Capacidad Disco Duro: %s",lapto.discoduro);
fprintf(doc,"\n\n\t\tModelo procesador: %s",lapto.procesador);
fprintf(doc,"\t\tVelocidad del procesador: %s",lapto.velocidapro);
fprintf(doc,"\n\n\t\t----------------------------------------------\n\n ");
cont++;
printf("\nIngresar otro? (s/n)");
fflush( stdin );
scanf( "%c", &s);
system ("CLS");
}while ( s != 'n'&& s != 'N' );
fclose(doc);
printf ("Usted ingreso %d registros nuevos \n\n\n",cont);
system ("PAUSE");
break;
default:
printf ("Usted selecciono una opcion invalida\n");
system ("PAUSE");
break;
} //cierre switch ingresar
break; // case 1 switch ingresar
case 2:
printf("\n\n\t\t\t\tMenu Ingresar");
printf("\n\n\t\t\t\tComputador (1)");
printf("\n\n\t\t\t\tLapto (2)");
printf("\n\n\n\n\t\tElija por teclado la opcion con la cual trabajara: ");
scanf ("%d",& opcion);
system ("CLS");
switch (opcion) //switch consultar
{
case 1:
doc = fopen("computador.txt","r");
if(doc==NULL) {
printf ("Error al momento de encontrar el archivo\n\n\n");
system ("PAUSE");
return 1;
}
while ((c= getc(doc)) != EOF){
if (c=='\n') printf("\n");
else printf ("%c",c);
}
system ("PAUSE");
fclose(doc);
break;
case 2:
doc = fopen("lapto.txt","r");
if(doc==NULL) {
printf ("Error al momento de encontrar el archivo\n\n\n");
system ("PAUSE");
return 1;
}
while ((c= getc(doc)) != EOF){
if (c=='\n') printf("\n");
else printf ("%c",c);
}
system ("PAUSE");
fclose(doc);
break;
default:
printf ("Usted selecciono una opcion invalida\n");
system ("PAUSE");
break;
} //cierre switch consultar
break;
case 3:
printf ("modificar\n");
system ("PAUSE");
break;
case 4:
printf ("eliminar\n");
system ("PAUSE");
break;
case 5:
printf ("\n\n\n\t\t\t REALIZADO POR:\n");
break;
case 6:
printf ("salir\n");
system ("PAUSE");
break;
default:
printf ("Usted seleccionó una opción invalida\n");
system ("PAUSE");
break;
} //cierre switch menu principal
system ("CLS");
printf("\nDesea seguir utilizando el programa.? (s/n)");
fflush( stdin );
scanf( "%c", &op);
system ("CLS");
}while ( op != 'n'&& op != 'N' );
} //cierre del programa
mi problema es que no puedo modificar los registros guardados en un txt. e intentado con varios codigos y nada, dejo el codigo (solo tiene ingresar y consultar )haber si me pueden ayudar
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
FILE*doc;
int cont=0;
char s;
char c;
struct computador{
char codigometro[5];
char serial[10];
char modelo [15];
char marca [15];
char memoria [7];
char discoduro [7];
char procesador [15];
char velocidapro [7];
char serialmo [10];
char modelomo [15];
char marcamo[15];
char serialmou [10];
char modelomou [15];
char marcamou [15];
char serialte [10];
char modelote [15];
char marcate [15];
char serialcor [10];
char modelocor [15];
char marcacor [15];
};//cierre struct computador
struct lapto{
char codigometro [5];
char serial [10];
char modelo [15];
char marca[15];
char memoria[7];
char discoduro [7];
char procesador [15];
char velocidapro [7];
};//cierre structlapto
int main(){
char op;
lapto lapto;
computador computador;
int opcion;
system("color 1f");
printf("\n\n\n\n\t\t\t\t--- BIENVENIDOS ---");
printf("\n\n\t\t\tPrograma de Registro de Requerimientos ");
printf("\n\t\t\t de la Gerencia de Soporte Tecnico ");
printf("\n\t\t\t\tde C.A. Metro de Caracas \n\n\n\n\t\t\t");
system ("PAUSE");
system ("CLS");
do{
printf("\n\n\t\t\t\t Menu Principal");
printf("\n\n\n\t\t\t Ingresar Equipo (1)");
printf("\n\n\t\t\t Consultar Equipo (2)");
printf("\n\n\t\t\t Modificar Equipo (3)");
printf("\n\n\t\t\t Eliminar Equipo (4)");
printf("\n\n\t\t\t Creditos del proyecto (5)");
printf("\n\n\t\t\t Salir del programa (6)");
printf("\n\n\n\n\t\t\t Digite el numero de su opcion: ");
scanf ("%d",& opcion);
system ("CLS");
switch (opcion) {//switch menu principal
case 1:
printf("\n\n\t\t\t\tMenu Ingresar");
printf("\n\n\t\t\t\tComputador (1)");
printf("\n\n\t\t\t\tLaptop (2)");
printf("\n\n\n\n\t\tElija por teclado la opcion con la cual trabajara: ");
scanf ("%d",& opcion);
system ("CLS");
switch (opcion) //switch ingresar
{
case 1:
doc = fopen("computador.txt","a");
do{
printf("\nIntroduzca los siguientes datos");
printf("\n\n Codigo Metro: ");
scanf("%s",computador.codigometro);
printf("\n\t\t\t\t COMPUTADOR ");
printf("\n\n\tSerial: ");
scanf("%s",computador.serial);
printf("\n\tMarca: ");
scanf("%s",computador.marca);
printf("\n\tModelo: ");
scanf("%s",computador.modelo);
printf("\n\tMemoria RAM: ");
scanf("%s",computador.memoria);
printf("\n\tCapacidad Disco Duro: ");
scanf("%s",computador.discoduro);
printf("\n\tModelo procesador: ");
scanf("%s",computador.procesador);
printf("\n\tVelocidad del procesador: ");
scanf("%s",computador.velocidapro);
printf("\n\t\t\t\t MONITOR ");
printf("\n\n\tSerial: ");
scanf("%s",computador.serialmo);
printf("\n\tMarca: ");
scanf("%s",computador.marcamo);
printf("\n\tModelo: ");
scanf("%s",computador.modelomo);
printf("\n\t\t\t\t TECLADO ");
printf("\n\n\tSerial: ");
scanf("%s",computador.serialte);
printf("\n\tMarca: ");
scanf("%s",computador.marcate);
printf("\n\tModelo: ");
scanf("%s",computador.modelote);
printf("\n\t\t\t\t MOUSE ");
printf("\n\n\tSerial: ");
scanf("%s",computador.serialmou);
printf("\n\tMarca: ");
scanf("%s",computador.marcamou);
printf("\n\tModelo: ");
scanf("%s",computador.modelomou);
printf("\n\t\t\t\t CORNETAS ");
printf("\n\n\tSerial: ");
scanf("%s",computador.serialcor);
printf("\n\tMarca: ");
scanf("%s",computador.marcacor);
printf("\n\tModelo: \n\n");
scanf("%s",computador.modelocor);
system ("PAUSE");
fprintf(doc,"\n\n Codigo Metro: %s",computador.codigometro);
fprintf(doc,"\n\t\t\t\t COMPUTADOR ");
fprintf(doc,"\n\n Serial: %s",computador.serial);
fprintf(doc,"\t\t Marca: %s",computador.marca);
fprintf(doc,"\t\t Modelo: %s\n\n",computador.modelo);
fprintf(doc," Memoria RAM: %s",computador.memoria);
fprintf(doc,"\t\t\tCapacidad Disco Duro: %s",computador.discoduro);
fprintf(doc,"\n\n Modelo procesador: %s",computador.procesador);
fprintf(doc,"\t Velocidad del procesador: %s",computador.velocidapro);
fprintf(doc,"\n\n\t\t\t\t MONITOR ") ;
fprintf(doc,"\n\n Serial: %s",computador.serialmo);
fprintf(doc,"\t\t Marca: %s",computador.marcamo);
fprintf(doc,"\t\t Modelo: %s\n\n",computador.modelomo);
fprintf(doc,"\n\t\t\t\t TECLADO ");
fprintf(doc,"\n\n Serial: %s",computador.serialte);
fprintf(doc,"\t\t Marca: %s",computador.marcate);
fprintf(doc,"\t\t Modelo: %s\n\n",computador.modelote);
fprintf(doc,"\n\t\t\t\t MOUSE ");
fprintf(doc,"\n\n Serial: %s",computador.serialmou);
fprintf(doc,"\t\t Marca: %s",computador.marcamou);
fprintf(doc,"\t\t Modelo: %s\n\n",computador.modelomou);
fprintf(doc,"\n\t\t\t\t CORNETAS ");
fprintf(doc,"\n\n Serial: %s",computador.serialcor);
fprintf(doc,"\t\t Marca: %s",computador.marcacor);
fprintf(doc,"\t\t Modelo: %s",computador.modelocor);
fprintf(doc,"\n\n\t\t\t----------------------------------------------\n\n");
fprintf(doc,"\n\n\t\t\t----------------------------------------------\n\n");
cont++;
printf("\nIngresar otro? (s/n)");
fflush( stdin );
scanf( "%c", &s);
system ("CLS");
}while ( s != 'n'&& s != 'N' );
fclose(doc);
printf ("Usted ingreso %d registros nuevos \n\n\n",cont);
system ("PAUSE");
break;
case 2:
doc = fopen("lapto.txt","a");
do{
printf(" Introduzca los siguientes datos");
printf("\n Codigo Metro: ");
scanf("%s",lapto.codigometro);
printf("\n Serial: ");
scanf("%s",lapto.serial);
printf("\n Marca: ");
scanf("%s",lapto.marca);
printf("\n Modelo: ");
scanf("%s",lapto.modelo);
printf("\n Memoria RAM: ");
scanf("%s",lapto.memoria);
printf("\n Disco Duro: ");
scanf("%s",lapto.discoduro);
printf("\n Modelo procesador: ");
scanf("%s",lapto.procesador);
printf("\n velocidad del procesador: ");
scanf("%s",lapto.velocidapro);
fprintf(doc,"\n\n Codigo Metro: %s",lapto.codigometro);
fprintf(doc,"\n\t\t\t\t LAPTOS ");
fprintf(doc,"\n\n Serial: %s",lapto.serial);
fprintf(doc,"\t\t Marca: %s",lapto.marca);
fprintf(doc,"\t\t Modelo: %s\n\n",lapto.modelo);
fprintf(doc," Memoria RAM: %s",lapto.memoria);
fprintf(doc,"\t\t\t Capacidad Disco Duro: %s",lapto.discoduro);
fprintf(doc,"\n\n\t\tModelo procesador: %s",lapto.procesador);
fprintf(doc,"\t\tVelocidad del procesador: %s",lapto.velocidapro);
fprintf(doc,"\n\n\t\t----------------------------------------------\n\n ");
cont++;
printf("\nIngresar otro? (s/n)");
fflush( stdin );
scanf( "%c", &s);
system ("CLS");
}while ( s != 'n'&& s != 'N' );
fclose(doc);
printf ("Usted ingreso %d registros nuevos \n\n\n",cont);
system ("PAUSE");
break;
default:
printf ("Usted selecciono una opcion invalida\n");
system ("PAUSE");
break;
} //cierre switch ingresar
break; // case 1 switch ingresar
case 2:
printf("\n\n\t\t\t\tMenu Ingresar");
printf("\n\n\t\t\t\tComputador (1)");
printf("\n\n\t\t\t\tLapto (2)");
printf("\n\n\n\n\t\tElija por teclado la opcion con la cual trabajara: ");
scanf ("%d",& opcion);
system ("CLS");
switch (opcion) //switch consultar
{
case 1:
doc = fopen("computador.txt","r");
if(doc==NULL) {
printf ("Error al momento de encontrar el archivo\n\n\n");
system ("PAUSE");
return 1;
}
while ((c= getc(doc)) != EOF){
if (c=='\n') printf("\n");
else printf ("%c",c);
}
system ("PAUSE");
fclose(doc);
break;
case 2:
doc = fopen("lapto.txt","r");
if(doc==NULL) {
printf ("Error al momento de encontrar el archivo\n\n\n");
system ("PAUSE");
return 1;
}
while ((c= getc(doc)) != EOF){
if (c=='\n') printf("\n");
else printf ("%c",c);
}
system ("PAUSE");
fclose(doc);
break;
default:
printf ("Usted selecciono una opcion invalida\n");
system ("PAUSE");
break;
} //cierre switch consultar
break;
case 3:
printf ("modificar\n");
system ("PAUSE");
break;
case 4:
printf ("eliminar\n");
system ("PAUSE");
break;
case 5:
printf ("\n\n\n\t\t\t REALIZADO POR:\n");
break;
case 6:
printf ("salir\n");
system ("PAUSE");
break;
default:
printf ("Usted seleccionó una opción invalida\n");
system ("PAUSE");
break;
} //cierre switch menu principal
system ("CLS");
printf("\nDesea seguir utilizando el programa.? (s/n)");
fflush( stdin );
scanf( "%c", &op);
system ("CLS");
}while ( op != 'n'&& op != 'N' );
} //cierre del programa