Foros del Web » Programación para mayores de 30 ;) » Programación General »

Ayuda con un programa en lenguaje c

Estas en el tema de Ayuda con un programa en lenguaje c en el foro de Programación General en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 20/12/2010, 20:38
 
Fecha de Ingreso: diciembre-2010
Mensajes: 3
Antigüedad: 13 años, 4 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;
                                                     }
  #2 (permalink)  
Antiguo 21/12/2010, 10:29
 
Fecha de Ingreso: diciembre-2010
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Ayuda con un programa en lenguaje c

Porfa ayuda es urjente nececito entregar el programa hoy :S
  #3 (permalink)  
Antiguo 21/12/2010, 11:48
Avatar de Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 17 años, 8 meses
Puntos: 774
Respuesta: Ayuda con un programa en lenguaje c

Exactamente en que linea te manda el error?
  #4 (permalink)  
Antiguo 21/12/2010, 12:54
 
Fecha de Ingreso: diciembre-2010
Mensajes: 3
Antigüedad: 13 años, 4 meses
Puntos: 0
Respuesta: Ayuda con un programa en lenguaje c

en ninguna loq me lanza es un warnig en la funcion edit en la linea del fputs el error grave q le sucede esq al momento de correrlo cuando ingreso la opcion en el menu me dic violacion de segmento y ya le e dado mil vueltas al codigo y no veo el porq :S pense q era por el switch y realic el meni con puros if else pero da el mismo resultado e corrido las cada funcion aparte y corren con normalidad espero me puedas ayudar :S grax

Etiquetas: lenguaje, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:27.