Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: adjmir en 30 Junio 2014, 23:41 pm



Título: principiante
Publicado por: adjmir en 30 Junio 2014, 23:41 pm
copie esto de un ejemplo en youtube para ingresar un mensaje en un archivo de texto ahora quisiera utilizarlo dentro de una de las opciones del switch(opcion) pero no me deja ingresar texto
ESTO FUE CUANDO FUNCIONO
FILE *fichero;
   char cadena[4000];
   if((fichero=fopen("datos.txt","a"))!=NULL)
   {
      printf("el archivo se abrio \n");
      printf("introduzca el mensaje \n\n");
      fgets(cadena,4000,stdin);
      fputs(cadena,fichero);
      printf("mensaje grabado \n");
      fclose(fichero);
   }else
   {
      printf("error");
   }
ESTO ES CUANDO NO FUNCIONO
case 2:
         if((fichero=fopen("datos.txt","a"))!=NULL)
   {
      printf("el archivo se abrio \n");
      printf("introduzca el mensaje \n\n");
      fgets(cadena,4000,stdin);
      fputs(cadena,fichero);
      printf("mensaje grabado \n");
      fclose(fichero);
   }else
   {
      printf("error");
   }
   break;


Título: Re: principiante
Publicado por: ivancea96 en 30 Junio 2014, 23:51 pm
¿El char cadena[4000] y el FILE *fichero los colocaste en el segundo código?
¿Qué error o problema te da?

PD:Coloca las etiquetas GeSHi para poner código. Lo tienes arriba a la derecha, sobre los emoticonos, al crear el mensaje.


Título: Re: principiante
Publicado por: MeCraniDOS en 2 Julio 2014, 00:50 am
¿El char cadena[4000] y el FILE *fichero los colocaste en el segundo código?

Creo que si lo ha copiado, debe pensar que no se pueden declarar las variables dentro del case y no las ha puesto  :silbar:

Saludos


Título: Re: principiante
Publicado por: leosansan en 2 Julio 2014, 13:21 pm

,,,
. .
 |
\-/



La declaración de fichero y cadena han de ir antes de los case porque si los metess en el case te cantará error:

Citar
error: a label can only be part of a statement and a declaration is not a statement|

¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)




Título: Re: principiante
Publicado por: eferion en 2 Julio 2014, 13:31 pm

,,,
. .
 |
\-/



La declaración de fichero y cadena han de ir antes de los case porque si los metess en el case te cantará error:

¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)




Si encierras el contenido del case con llaves el error debería desaparecer.