Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: thealberteitor en 10 Agosto 2016, 17:50 pm



Título: Duda programa básico c++
Publicado por: thealberteitor en 10 Agosto 2016, 17:50 pm
Es un programa en el que tienes que ir metiendo datos hasta que se introduzca el carácter punto '.' y mostrar por pantalla cuantos saltos de linea, tabuladores y espacios se han introducido.(También hay que mostrar los números introducidos por pantalla. Tiene que ser con memoria fija por eso creo un vector de 50. El programa compila sin errores ni warning pero peta cuando introduzco el carácter punto. He pensado que como es un vector de int no puede contener un caracter que no sea un número pero no sé si es ese el error.  Alguien sabría ayudarme? Gracias de antemano





Código
  1. #include<iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main(){
  6.  
  7. int MAX=50;
  8. int v[MAX];
  9. int cont=0;
  10. int num;
  11.  
  12. cout << "Introduzca números: " << endl;
  13. int contador2=0;
  14.  
  15. do{
  16. cin >> num;
  17. v[cont]=num;
  18. cont++;
  19. if(num == ' ' || num == '\t' ||num == '\n')
  20. contador2++;
  21. }while(num != '.');
  22.  
  23.  
  24. for(int i=0; i<cont-1; i++)
  25. cout << v[i] << endl;
  26.  
  27. cout << "Ha introducido " << contador2 << " tabuladores, espacios de linea..etc y también estos números: " << cont << endl;
  28. }
   
   



Mod: Los códigos deben ir en etiquetas GeSHi


Título: Re: Duda programa básico c++
Publicado por: AlbertoBSD en 10 Agosto 2016, 17:59 pm
Y cual es la duda  :-(


Título: Re: Duda programa básico c++
Publicado por: thealberteitor en 10 Agosto 2016, 18:01 pm
al poner el punto me peta el programa


Título: Re: Duda programa básico c++
Publicado por: engel lex en 10 Agosto 2016, 18:07 pm
te explico, no, no somos adivinos, en general debes decir que debe hacer tu programa, mostrar tu programa indicar donde falla, que es lo que sucede cuando falla y como causar esa falla...



Título: Re: Duda programa básico c++
Publicado por: thealberteitor en 10 Agosto 2016, 18:11 pm
He modificado el post y he mejorado mi explicación, A ver que tal ahora


Título: Re: Duda programa básico c++
Publicado por: AlbertoBSD en 10 Agosto 2016, 18:21 pm
Voy a comentarte que si solo necesitas contar, no necesitas guardarlos.

La variable necesita ser char

Ahora que si necesitas guardarlos pues entonces se trata de otra cosa:

Citar
metiendo datos hasta que se introduzca el carácter punto '.'

Citar
también hay que mostrar los números introducidos por pantalla.

Son Datos o Numeros?

Codigo para solo contar caracteres independientemente si son numeros o otra cosa
Código
  1. #include<stdio.h>
  2.  
  3. int main(){
  4. char c;
  5. int cont=0;
  6. int num;
  7. int contador2=0;
  8. printf("Introduzca texto: ");
  9.  
  10. do{
  11. c = getchar();
  12. cont++;
  13. if(c == ' ' || c == '\t' ||c == '\n')
  14. contador2++;
  15. }while(c != '.');
  16. printf("Ha introducido %i  tabuladores, espacios de linea..etc y también estos números: %i\n",contador2,cont);
  17. }


Tu programa se cuelga por que tratas de meterle un "." a una variable Entera.

Saludos


Título: Re: Duda programa básico c++
Publicado por: thealberteitor en 10 Agosto 2016, 18:29 pm
buah tio me he estado rallando unas horas y no lo encontraba, pfff muchisimas gracias