
20/12/2010, 20:38
|
| | Fecha de Ingreso: diciembre-2010
Mensajes: 3
Antigüedad: 14 años, 2 meses Puntos: 0 | |
Ayuda con un programa en lenguaje c Hola buenas noches Bueno amig@s soy estudiante de ing informatica y me mandaron a relizar un programa como ejercicio aqui les dejo mi adelanto pero el programa precenta un problema q al momento de seleccionar en el menu de el mismo alguna opcion me lanza un error de violacion de segmento espero que me puedan ayudar de ante mano gracias..
Código:
#include <stdio.h>
int menu; /*esta variable sera usada para que retenga el el valor de las opciones del menu*/
char nombrep[100],nombrep2[100]; /*Variables que tomaran el nombre de los archivos*/
void crear () /*funcion que creara el Archivo*/
{
FILE *archcre;
printf("Ingrese el nombre de el archivo que desea crear junto con su extencion:");
scanf("%s",nombrep);
archcre = fopen (nombrep,"w");
if (archcre == NULL) /*identifica si el archivo fue creado o no*/
{
printf("\n Se produjo un error al momento de crear el archivo");
}
else
{
printf("\n El archivo fue creado exitosamente");
}
fclose ( archcre );
}
void mostr() /*Funcion que abrira y mostrara el contenido de un archivo*/
{
FILE *archmost;
char caracter[100]; /*Variable que almacenara de forma momentanea cada caracter que contenga el archivo para luego imprimirlo*/
printf ("Ingrese el nombre del archivo q desea abrir");
scanf ("%s",nombrep);
archmost = fopen(nombrep,"r");
if(archmost == NULL)
{
printf("\n Se produjo un Error al momento de abrir el archivo");
}
else
{
printf("\n Archivo fue abierto correctamente \n\n El contenido del archivo es: \n\n");
while (feof(archmost)== 0 )
{
fgets(caracter,50,archmost);
printf ("%s",caracter);
}
}
fclose ( archmost );
}
void edit() /*Funcion que abrira y editara el archivo*/
{
FILE *archedi;
char caracters; /*esta variable almacenara los caracteres que se agregaran al archivo*/
printf("\nIngrese el nombre del archivo que desa abrir:");
scanf("%s",nombrep);
archedi = fopen(nombrep,"r+");
if (archedi == NULL)
{
printf("\nAh ocurrido un error al momento de abrir el archivo");
}
else
{
printf("\nIntroduzca el texto y precione la tecla ENTER para finalizar:\n\n");
while ((caracters = getchar()) != '\n')
{
scanf("%s",caracters);
fputs(caracters,archedi);
}
fclose ( archedi );
}
}
void copi () /* sta funcion copiara el contenido de un archivo en otro archivo*/
{
FILE *archent;
FILE *archsal;
char letra;
printf("\nIngrese el nombre del archivo que desea abrir para copiar su contenido:");
scanf("%s",nombrep);
printf("Ingrese el nombre del archivo donde desee pegar el contenido del otro archivo");
scanf("%s",nombrep2);
archent = fopen(nombrep,"r");
archsal = fopen(nombrep2,"w");
if(archent == NULL)
{
printf("\nSe produjo un error al momento de abrir los archivos\n");
}
else
{
while (feof(archent)==0)
{
letra = fgetc (archent);
fputc(letra,archsal);
}
printf("copiado con exito");
}
fclose(archent);
fclose(archsal);
}
int main()
{
atras:
printf("\n\n\t\t#######MENU#######\n\n");
printf(" 1) Ingrese 1 para crear un archivo. \n 2) Ingrese 2 para abrir un archivo y mostrar el contenido. \n 3) Ingrese 3 para editar un archivo. \n 4) Ingrese 4 para copiar el contenido de un archivo en otro. \n 5) Ingrese 5 para eliminar un archivo. \n 6) Ingrese 6 para salir del programa.");
printf("\nIngrese el numero de la opcion que desea ejecutar:");
scanf("%d",menu);
switch (menu)
{
case 1:
crear();
goto atras;
break;
case 2:
mostr();
goto atras;
break;
case 3:
edit();
goto atras;
break;
case 4:
copi();
goto atras;
break;
case 5:
printf("\ningrese el nombre del archivo que desea eliminar:");
scanf("%s",nombrep2);
remove(nombrep2);
goto atras;
break;
case 6:
printf("\nPrograma Finalizado");
break;
default:
printf("Ingrese una opcion correcta");
goto atras;
break;
}
return 0;
}
|