Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: DragonShiryu en 14 Octubre 2011, 00:59 am



Título: Comando cerrar ventana de C++
Publicado por: DragonShiryu en 14 Octubre 2011, 00:59 am
Bueno, veran ya anteriormente habia pedido ayuda para este problema ;D. Bueno, es que ahora necesito que se ejecute la opcion Cerrar en este codigo:

Código:
#include<stdio.h>
#include<conio.h>
   void conversion (void);
   void MinToMay(char string[]);
   void MaytoMin(char string[]);
main()
{
int i,NO;
textbackground(5);
textcolor(WHITE);
clrscr();
for(i=0; i<80;i++)
 {
 gotoxy(i,1);cprintf("=");
 gotoxy(i,23);cprintf("=");
}
gotoxy(30,5);cprintf("Bienvenidos(as)");
gotoxy(10,7);cprintf("Programa de conversion de letras de Minus. a Mayus. o Viceversa");
gotoxy(30,21);cprintf("Presione una tecla para continuar...");
getch();
clrscr();
textbackground(5);
clrscr();
do
{
clrscr();
gotoxy(30,4);cprintf("MENU DE OPCIONES\n\n");
gotoxy(5,7);cprintf("  1.- Iniciar conversion.\n");
gotoxy(5,8);cprintf("  2.- Salir.");
gotoxy(10,8);cprintf("\n\n\n\n   Presione una opcion... ");
char cad[80];
   fgets(cad, sizeof(cad), stdin);
   sscanf(cad, "%d",&NO);
   switch(NO)
   {
  case 1: clrscr();
      conversion();
  getch();
  break;
      default:
      gotoxy(1,15);cprintf("   Opcion Inconrrecta :(, presione una tecla para volver a intentarlo... :D");
      getch();
      clrscr();
      }
   }while(NO!=2);
 gotoxy(30,4);cprintf("\n\n\n\n\n   ADIOS!! :D");
getch();
}

void conversion (void)
{
   int Op;
   char cadena[80];
   clrscr();
gotoxy(30,1);cprintf("\n\CONVERSION DE PALABRA(S)\n");
gotoxy(1,2);cprintf("\n\nPor favor, Introduzca la(s) palabra(s) que desea convertir y presione ENTER: \n");
printf("\n    ");
gets(cadena);
   clrscr();
   do
   {
   gotoxy(30,1);cprintf("\nMODO DE CONVERSION\n\n\n");
   gotoxy(2,4);cprintf("  1.- De minusculas a mayusculas\n");
   gotoxy(2,6);cprintf("  2.- De mayusculas a minusculas\n");
   gotoxy(2,8);cprintf("  3.- Cambiar la(s) palabra(s)\n");
   gotoxy(2,10);cprintf("  4.- Salir\n\n");
   gotoxy(10,12);cprintf("\n\nSeleccione el Modo de Conversion: ");
   scanf("%d,\n",&Op);
      switch(Op)
      {
       case 1:
         MinToMay(cadena);
         clrscr();
         gotoxy(30,1);cprintf("\nCONVERSION DE PALABRA(S)\n\n");
         gotoxy(8,6);cprintf("En Mayusculas: %s \n", cadena);
         gotoxy(12,10);cprintf("Presione una tecla para continuar...");
         getch();
         clrscr();
         break;
         case 2:
         MaytoMin(cadena);
         clrscr();
         gotoxy(30,1);cprintf("\nCONVERSION DE PALABRA(S)\n\n");
         gotoxy(8,6);cprintf("En Minusculas: %s \n", cadena);
         gotoxy(12,10);cprintf("Presione una tecla para continuar...");
         getch();
         clrscr();
         break;
         default:
         gotoxy(10,16);cprintf("Opcion incorrecta :(, intente de nuevo... :D");
         getch();
            clrscr();
         }
         }
         while(Op!=3);
}


void MinToMay(char string[])
{
int i=0;
int desp='a'-'A';
for (i=0;string[i]!='\0';++i)
{
if(string[i]>='a'&&string[i]<='z')
{
string[i]=string[i]-desp;
}
}
}

void MaytoMin(char string[])
{
int a=0;
int desp='A'-'a';
for (a=0;string[a]!='\0';++a)
{
if(string[a]>='A'&&string[a]<='Z')
{
string[a]=string[a]-desp;
}
}
}

Si me pueden ayudar, lo quiero agregar en el "MENU DE CONVERSION" que hice con case, nadamas que cuando se presion "4" se cierre la ventana. ;D
Saludos!!


Título: Re: Comando cerrar ventana de C++
Publicado por: Queta en 14 Octubre 2011, 18:01 pm
http://www.cplusplus.com/reference/clibrary/cstdlib/exit/ (http://www.cplusplus.com/reference/clibrary/cstdlib/exit/)

Aunque en tu caso, utilizando la sentencia return hay más que suficiente.


Título: Re: Comando cerrar ventana de C++
Publicado por: DragonShiryu en 14 Octubre 2011, 18:41 pm
http://www.cplusplus.com/reference/clibrary/cstdlib/exit/ (http://www.cplusplus.com/reference/clibrary/cstdlib/exit/)

Aunque en tu caso, utilizando la sentencia return hay más que suficiente.

Gracias por contestar, peroooo... Como lo agrego? Intente de esta forma y no me salio, soy noob en esto ;D

Código:
#include<stdio.h>
#include<conio.h>
   void conversion (void);
   void MinToMay(char string[]);
   void MaytoMin(char string[]);
   void Salir(void);
main()
{
int i,NO;
textbackground(5);
textcolor(WHITE);
clrscr();
for(i=0; i<80;i++)
 {
 gotoxy(i,1);cprintf("=");
 gotoxy(i,23);cprintf("=");
}
gotoxy(30,5);cprintf("Bienvenidos(as)");
gotoxy(10,7);cprintf("Programa de conversion de letras de Minus. a Mayus. o Viceversa");
gotoxy(30,21);cprintf("Presione una tecla para continuar...");
getch();
clrscr();
textbackground(5);
clrscr();
do
{
clrscr();
gotoxy(30,4);cprintf("MENU DE OPCIONES\n\n");
gotoxy(5,7);cprintf("  1.- Iniciar conversion.\n");
gotoxy(5,8);cprintf("  2.- Salir.");
gotoxy(10,8);cprintf("\n\n\n\n   Presione una opcion... ");
char cad[80];
   fgets(cad, sizeof(cad), stdin);
   sscanf(cad, "%d",&NO);
   switch(NO)
   {
  case 1: clrscr();
      conversion();
  getch();
  break;
      default:
      gotoxy(1,15);cprintf("   Opcion Inconrrecta :(, presione una tecla para volver a intentarlo... :D");
      getch();
      clrscr();
      }
   }while(NO!=2);
 gotoxy(30,4);cprintf("\n\n\n\n\n   ADIOS!! :D");
getch();
}

void conversion (void)
{
   int Op;
   char cadena[80];
   clrscr();
gotoxy(30,1);cprintf("\n\CONVERSION DE PALABRA(S)\n");
gotoxy(1,2);cprintf("\n\nPor favor, Introduzca la(s) palabra(s) que desea convertir y presione ENTER: \n");
printf("\n    ");
gets(cadena);
   clrscr();
   do
   {
   gotoxy(30,1);cprintf("\nMODO DE CONVERSION\n\n\n");
   gotoxy(2,4);cprintf("  1.- De minusculas a mayusculas\n");
   gotoxy(2,6);cprintf("  2.- De mayusculas a minusculas\n");
   gotoxy(2,8);cprintf("  3.- Cambiar la(s) palabra(s)\n");
   gotoxy(2,10);cprintf("  4.- Salir\n\n");
   gotoxy(10,12);cprintf("\n\nSeleccione el Modo de Conversion: ");
   scanf("%d,\n",&Op);
      switch(Op)
      {
      case 1:
         MinToMay(cadena);
          clrscr();
         gotoxy(30,1);cprintf("\nCONVERSION DE PALABRA(S)\n\n");
         gotoxy(8,6);cprintf("En Mayusculas: %s \n", cadena);
         gotoxy(12,10);cprintf("Presione una tecla para continuar...");
          getch();
          clrscr();
         break;
         case 2:
         MaytoMin(cadena);
          clrscr();
         gotoxy(30,1);cprintf("\nCONVERSION DE PALABRA(S)\n\n");
         gotoxy(8,6);cprintf("En Minusculas: %s \n", cadena);
         gotoxy(12,10);cprintf("Presione una tecla para continuar...");
          getch();
          clrscr();
         break;
         case 3:
         MaytoMin(cadena);
          clrscr();
         gotoxy(8,6);cprintf(" ");
          clrscr();
         break;
         case 4:
         Salir();
          clrscr();
          getch();
         break;
         default:
         gotoxy(10,16);cprintf("Opcion incorrecta :(, intente de nuevo... :D");
          getch();
            clrscr();
         }
         }
         while(Op!=3);
}

void MinToMay(char string[])
{
int i=0;
int desp='a'-'A';
for (i=0;string[i]!='\0';++i)
{
if(string[i]>='a'&&string[i]<='z')
{
string[i]=string[i]-desp;
}
}
}

void MaytoMin(char string[])
{
int a=0;
int desp='A'-'a';
for (a=0;string[a]!='\0';++a)
{
if(string[a]>='A'&&string[a]<='Z')
{
string[a]=string[a]-desp;
}
}
}

void Salir(void)
{
return 0;
}

Alguna otra idea? Espero me ayuden porfa, se los agradecere!
Saludos!!


Título: Re: Comando cerrar ventana de C++
Publicado por: Queta en 14 Octubre 2011, 21:53 pm
void no puede devolver un valor, pero sí puedes utilizar return ;).


Título: Re: Comando cerrar ventana de C++
Publicado por: DragonShiryu en 14 Octubre 2011, 22:01 pm
Entonces como le hago? ;D. Ayudame porfas, namas me falta eso, estare muy agradecido si me ayudas...

Saludos!!


Título: Re: Comando cerrar ventana de C++
Publicado por: Queta en 14 Octubre 2011, 22:17 pm
No te gusta leer...

Código
  1. void Salir(void)
  2. {
  3. return;
  4. }


Título: Re: Comando cerrar ventana de C++
Publicado por: DragonShiryu en 14 Octubre 2011, 22:23 pm
No te gusta leer...

Código
  1. void Salir(void)
  2. {
  3. return;
  4. }

Gracias iba a ponerlo asi, pero me puso en duda si era asi o no, pero ahora no se sale cuando presiono "4" nadamas limpia la pantalla y se regresa, en si que hace "return"...?? Mira, aqui te dejo el codigo y si me pudieras corregir o decir en donde esta mal te lo agradecere

Código:
#include<stdio.h>
#include<conio.h>
   void conversion (void);
   void MinToMay(char string[]);
   void MaytoMin(char string[]);
   void Salir(void);
main()
{
int i,NO;
textbackground(5);
textcolor(WHITE);
clrscr();
for(i=0; i<80;i++)
 {
 gotoxy(i,1);cprintf("=");
 gotoxy(i,23);cprintf("=");
}
gotoxy(30,5);cprintf("Bienvenidos(as)");
gotoxy(10,7);cprintf("Programa de conversion de letras de Minus. a Mayus. o Viceversa");
gotoxy(30,21);cprintf("Presione una tecla para continuar...");
getch();
clrscr();
textbackground(5);
clrscr();
do
{
clrscr();
gotoxy(30,4);cprintf("MENU DE OPCIONES\n\n");
gotoxy(5,7);cprintf("  1.- Iniciar conversion.\n");
gotoxy(5,8);cprintf("  2.- Salir.");
gotoxy(10,8);cprintf("\n\n\n\n   Presione una opcion... ");
char cad[80];
   fgets(cad, sizeof(cad), stdin);
   sscanf(cad, "%d",&NO);
   switch(NO)
   {
  case 1: clrscr();
      conversion();
  getch();
  break;
      default:
      gotoxy(1,15);cprintf("   Opcion Inconrrecta :(, presione una tecla para volver a intentarlo... :D");
      getch();
      clrscr();
      }
   }while(NO!=2);
 gotoxy(30,4);cprintf("\n\n\n\n\n   ADIOS!! :D");
getch();
}

void conversion (void)
{
   int Op;
   char cadena[80];
   clrscr();
gotoxy(30,1);cprintf("\n\CONVERSION DE PALABRA(S)\n");
gotoxy(1,2);cprintf("\n\nPor favor, Introduzca la(s) palabra(s) que desea convertir y presione ENTER: \n");
printf("\n    ");
gets(cadena);
   clrscr();
   do
   {
   gotoxy(30,1);cprintf("\nMODO DE CONVERSION\n\n\n");
   gotoxy(2,4);cprintf("  1.- De minusculas a mayusculas\n");
   gotoxy(2,6);cprintf("  2.- De mayusculas a minusculas\n");
   gotoxy(2,8);cprintf("  3.- Cambiar la(s) palabra(s)\n");
   gotoxy(2,10);cprintf("  4.- Salir\n\n");
   gotoxy(10,12);cprintf("\n\nSeleccione el Modo de Conversion: ");
   scanf("%d,\n",&Op);
      switch(Op)
      {
      case 1:
         MinToMay(cadena);
          clrscr();
         gotoxy(30,1);cprintf("\nCONVERSION DE PALABRA(S)\n\n");
         gotoxy(8,6);cprintf("En Mayusculas: %s \n", cadena);
         gotoxy(12,10);cprintf("Presione una tecla para continuar...");
          getch();
          clrscr();
         break;
         case 2:
         MaytoMin(cadena);
          clrscr();
         gotoxy(30,1);cprintf("\nCONVERSION DE PALABRA(S)\n\n");
         gotoxy(8,6);cprintf("En Minusculas: %s \n", cadena);
         gotoxy(12,10);cprintf("Presione una tecla para continuar...");
          getch();
          clrscr();
         break;
         case 3:
         MaytoMin(cadena);
          clrscr();
         gotoxy(8,6);cprintf(" ");
          clrscr();
         break;
         case 4:
         Salir();
          clrscr();
          getch();
         break;
         default:
         gotoxy(10,16);cprintf("Opcion incorrecta :(, intente de nuevo... :D");
          getch();
            clrscr();
         }
         }
         while(Op!=3);
}

void MinToMay(char string[])
{
int i=0;
int desp='a'-'A';
for (i=0;string[i]!='\0';++i)
{
if(string[i]>='a'&&string[i]<='z')
{
string[i]=string[i]-desp;
}
}
}

void MaytoMin(char string[])
{
int a=0;
int desp='A'-'a';
for (a=0;string[a]!='\0';++a)
{
if(string[a]>='A'&&string[a]<='Z')
{
string[a]=string[a]-desp;
}
}
}

void Salir(void)
{
return;
}

Saludos y GRACIAS!!


Título: Re: Comando cerrar ventana de C++
Publicado por: Queta en 14 Octubre 2011, 22:35 pm
No, perdona, no puedes utilizar return ya que sólo terminarás la ejecución de la función, que en este caso no es main. Usa exit:

Código
  1. void Salir(void)
  2. {
  3. exit(1);
  4. }

No olvides stdlib.