Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Norochii en 19 Octubre 2011, 15:29 pm



Título: Ayuda!!! :( con c++
Publicado por: Norochii en 19 Octubre 2011, 15:29 pm
hello.. tengo una duda.. estoy haciendo un programa en c++ y necesito saber como hacerle para que cuando el usuario introduzca un caracter en la variable entera entre de nuevo al ciclo do-while por que lo que hace el programa cuando introducen un caracter es k despliega la tabla del cero y no se devuelve al ciclo do-while el codigo es el siguiente :D les agradeceria su ayuda :D

#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <Windows.h>


using namespace std;

void TablasDeMultiplicar()
{
   int Tabla = 0;
   do
   {
   cout<<"\n\n  Ingresa el numero de la Tabla de Multiplicar que quieras Aprender: \n\n";
   cout<<"  Solo Podras Ver las Tablas del 0 al 12\n\n";
   cout<<"  Tabla del : ";
   cin>>Tabla;
   if(Tabla<=12 && Tabla >=0)
   {
   
   for(int i = 0; i<=12; i++)
   {
      cout<<"\n"<<Tabla<<" X "<<i<<" = "<<Tabla*i<<endl;
   }
   cout<<"\n\n\n"<<endl;
   }
   else
   {
      cout<<"\n\nNumero no valido"<<endl;
   }
   cout<<"\n\n\n";
   system("PAUSE");
   system("cls");
   }while(Tabla>12 || Tabla <0 );
}
int main()
{
   char a;
   system("color 9B");

   TablasDeMultiplicar();
   
   system("PAUSE");
   return 0;
}


Título: Re: Ayuda!!! :( con c++
Publicado por: CeroX901 en 19 Octubre 2011, 15:53 pm
En la linea:

Código
  1. }while(Tabla>12 || Tabla <0 );

intenta arreglarlo como:

Código
  1. }while(true);

De está manera el programa nunca termina...



Título: Re: Ayuda!!! :( con c++
Publicado por: Norochii en 19 Octubre 2011, 16:00 pm
no sirvio u.u :'(


Título: Re: Ayuda!!! :( con c++
Publicado por: CeroX901 en 19 Octubre 2011, 16:26 pm
Listo. me quedó así:


Código
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <time.h>
  4. #include <stdlib.h>
  5. #include <conio.h>
  6. #include <string.h>
  7. #include <Windows.h>
  8. #include <sstream>
  9.  
  10. using namespace std;
  11.  
  12. void TablasDeMultiplicar()
  13. {
  14.   do
  15.   {
  16.   string entrada = "";
  17.   int Tabla = 0;
  18.  
  19.   cout<<"\n\n  Ingresa el numero de la Tabla de Multiplicar que quieras Aprender: \n\n";
  20.   cout<<"  Solo Podras Ver las Tablas del 0 al 12\n\n";
  21.   cout<<"  Tabla del : ";
  22.   getline(cin, entrada);
  23.   stringstream numero(entrada);
  24.   numero >> Tabla;
  25.  
  26.   if(Tabla <= 12 && Tabla >=0)
  27.   {
  28.  
  29.   for(int i = 0; i<=12; i++)
  30.   {
  31.  cout<<"\n"<<Tabla<<" X "<<i<<" = "<<Tabla*i<<endl;
  32.   }
  33.   cout<<"\n\n\n"<<endl;
  34.   }
  35.   else
  36.   {
  37.  cout<<"\n\nNumero no valido"<<endl;
  38. }
  39. cout<<"\n\n\n";
  40. system("PAUSE");
  41. system("cls");
  42. }while(true);
  43. }
  44. int main()
  45. {
  46.   char a;
  47.   system("color 9B");
  48.  
  49.   TablasDeMultiplicar();
  50.  
  51.   system("PAUSE");
  52.   return 0;
  53. }


Título: Re: Ayuda!!! :( con c++
Publicado por: Norochii en 19 Octubre 2011, 16:53 pm
para que sirve esta linea??
stringstream numero(entrada);
:O


Título: Re: Ayuda!!! :( con c++
Publicado por: CeroX901 en 19 Octubre 2011, 17:10 pm
para convertir de cadena a entero.


Título: Re: Ayuda!!! :( con c++
Publicado por: Norochii en 19 Octubre 2011, 17:19 pm
ia corriste el programa con las modificaciones que isiste?? :O es k has de cuenta k se supone k si el usuario mete una letra en vez de numero debe aparecer el letrero de numero invalido i volver a visualizar donde se ingresa el numero pero.... no se si en tu compilador si haga eso las modificaciones k le isiste por k ami no :'( lo siento por dar tantos problemas pero es k e buskado pero nomas no encuentro u.u


Título: Re: Ayuda!!! :( con c++
Publicado por: CeroX901 en 19 Octubre 2011, 17:39 pm
Ahí me sirve perfecto, cuando ingresa una letra me dice "numero no valido" y cuando ingresa un numero que no está entre 0 y 12 me dice lo mismo.

Arreglé el código... Ya no debes tener problema.

Código
  1. #include <iostream>
  2. #include <sstream>
  3.  
  4. using namespace std;
  5.  
  6. void TablasDeMultiplicar() {
  7. do {
  8. string entrada = "";
  9. int Tabla = 0;
  10.  
  11. cout<<"\n\n  Ingresa el numero de la Tabla de Multiplicar que quieras Aprender: \n\n";
  12. cout<<"  Solo Podras Ver las Tablas del 0 al 12\n\n";
  13. cout<<"  Tabla del : ";
  14.  
  15. getline(cin, entrada);
  16. stringstream numero(entrada);
  17. if (numero >> Tabla) { //Verifica que sea un número
  18. if(Tabla <= 12 && Tabla >=0) { //Verifica que esté entre el rango especificado (0-12)
  19. for(int i = 0; i<=12; i++) {
  20. cout<<"\n"<<Tabla<<" X "<<i<<" = "<<Tabla*i<<endl;
  21. }
  22. cout<<"\n\n\n"<<endl;
  23. } else {
  24. cout<<"\n\nNumero no valido"<<endl;
  25. }
  26. } else {
  27. cout<<"\n\nNumero no valido"<<endl;
  28. }
  29.  
  30. cout<<"\n\n\n";
  31. system("pause");
  32. system("cls");
  33. }while(true);
  34. }
  35. int main() {
  36. system("color 9B");
  37. TablasDeMultiplicar();
  38. system("PAUSE");
  39. return 0;
  40. }


Título: Re: Ayuda!!! :( con c++
Publicado por: CeroX901 en 19 Octubre 2011, 17:40 pm
Ahi le puse comentarios..


Título: Re: Ayuda!!! :( con c++
Publicado por: Norochii en 19 Octubre 2011, 21:56 pm
Muchisimas Gracias Me ayudo de mucho si funciona muy bien te lo agradezco :D n.n espero poder contar con tu ayuda si es que me trabo en algo mas :D .
Nos vemos
Saludos
Gracias


Título: Re: Ayuda!!! :( con c++
Publicado por: CeroX901 en 20 Octubre 2011, 01:29 am
Hace mucho que no entraba al foro, ya ni me acuerdo de cuantos usuarios he creado ya que se me olvidaban, pero intentaré dar vueltas por aquí todos los días para preguntas y ofrecer ayuda.  :)