Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: hervasiop12345 en 21 Noviembre 2011, 23:10 pm



Título: Comparar string con retorno de carro , tabulador y demás caracteres especiales
Publicado por: hervasiop12345 en 21 Noviembre 2011, 23:10 pm
Hola a todos. Necesito parar un bucle al encontrar un caracter especial pero no lo consigo. Parece una pregunta trivial pero a más de uno seguro que le interesa. Gracias de antemano y dejo la forma que creía que funcionaria.
Código:
#include<string>
#include<iostream>
using namespace std;
int main(){
   string comando;   
   while(comando!="\n"){
      cin>>comando;
   }
   return 0;
}




Título: Re: Comparar string con retorno de carro , tabulador y demás caracteres especiales
Publicado por: x64core en 21 Noviembre 2011, 23:52 pm
hola , malo:
Código:
  string comando;


Código:
int main(){
   char comando;   
   while(comando !=  Special Char)
   {
      cin>>comando;
   }
   return 0;
}


Título: Re: Comparar string con retorno de carro , tabulador y demás caracteres especiales
Publicado por: hervasiop12345 en 22 Noviembre 2011, 10:07 am
hola , malo:
Código:
  string comando;


Código:
int main(){
   char comando;   
   while(comando !=  Special Char)
   {
      cin>>comando;
   }
   return 0;
}

no funciona


Título: Re: Comparar string con retorno de carro , tabulador y demás caracteres especiales
Publicado por: BlackZeroX en 22 Noviembre 2011, 11:17 am
no funciona

Pues claro que eso no funciona y tu por que crees que no funcione... Pista esta como usan el while...

Usa un poco mas tu materia gris y veras la solucion... xP, te la puedo decir y muchos podran hacerlo pero a mi criterio será mejor que solo te guie.

Sangrientas Lunas!¡.


Título: Re: Comparar string con retorno de carro , tabulador y demás caracteres especiales
Publicado por: hervasiop12345 en 22 Noviembre 2011, 11:30 am
A ver si te crees que lo he puesto tal cual.
Código:
#include<string>
#include<iostream>
using namespace std;
int main(){
   char comando;   
   while(comando != '\n'){
      cin>>comando;
      cout<<comando<<endl;
   }
   return 0;
}
y por mucho que pulse enter no funca


Título: Re: Comparar string con retorno de carro , tabulador y demás caracteres especiales
Publicado por: rir3760 en 22 Noviembre 2011, 14:12 pm
Para leer caracteres hasta alcanzar uno en particular puedes utilizar la funcion "getline" con dos argumentos (el tercero se toma como '\n') o tres (si quieres leer hasta algun otro caracter).

Por ejemplo:
Código
  1. #include <iostream>
  2. using std::cin;
  3. using std::cout;
  4. using std::endl;
  5. using std::getline;
  6.  
  7. #include <string>
  8. using std::string;
  9.  
  10. int main()
  11. {
  12. string linea;
  13. char delim = '\n';
  14.  
  15. getline(cin, linea, delim);
  16. cout << "La linea es " << '\"' << linea << '\"' << endl;
  17.  
  18. return 0;
  19. }

Un saludo


Título: Re: Comparar string con retorno de carro , tabulador y demás caracteres especiales
Publicado por: RyogiShiki en 22 Noviembre 2011, 16:50 pm
Aquí un ejemplo sin el uso de char y puro String:

Código
  1. #include <iostream>
  2. #include <string>
  3.  
  4. using namespace std;
  5.  
  6. int main() {
  7.  string s;
  8.  
  9.  do {
  10.    getline(cin, s);
  11.    cout << s << endl;
  12.  } while (s.find('\t') == string::npos);
  13.  return 0;
  14.  
  15. }

saludos


Título: Re: Comparar string con retorno de carro , tabulador y demás caracteres especiales
Publicado por: x64core en 22 Noviembre 2011, 17:09 pm
que cosa! que COÑASO!?
quien dice que mi codigo no funciona  :¬¬

@rir3760
En mi codigo escribi solo la funcion main, daba por hecho que hibas a hacer tu las declaraciones!
y pongo el codigo completo para que vean que SI FUNCIONA

Código
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7.   char comando;
  8.   while(comando !=  'a')
  9.   {
  10.      cin>>comando;
  11.   }
  12.    return 0;
  13. }


el codigo lee y sale del bucle si detecta la letra "a" y un enter  :¬¬





Título: Re: Comparar string con retorno de carro , tabulador y demás caracteres especiales
Publicado por: rir3760 en 22 Noviembre 2011, 18:09 pm
quien dice que mi codigo no funciona  :¬¬
El creador del tema (hervasiop12345 ), el comentario de BlackZeroX (Astaroth) fue en la linea por supuesto no funcionara si se copia tal cual ya que se deben hacer los cambios pertinentes ....

@rir3760
En mi codigo escribi solo la funcion main, daba por hecho que hibas a hacer tu las declaraciones!
Honestamente no entiendo a que te refieres.

y pongo el codigo completo para que vean que SI FUNCIONA
Si funciona (tal cual) pero se debe recordar que al utilizar el objeto cin en su forma predeterminada para leer un caracter:
Código
  1. char ch;
  2.  
  3. cin >> ch;
Se descarta el espacio blanco (espacio, tabulador, avance de linea, etc.). Primero hay que cambiar el comportamiento del objeto para que no lo ignore (en este momento no recuerdo pero me parece es con un manipulador).

Un saludo


Título: Re: Comparar string con retorno de carro , tabulador y demás caracteres especiales
Publicado por: x64core en 22 Noviembre 2011, 18:15 pm
El creador del tema (hervasiop12345 ), el comentario de BlackZeroX (Astaroth) fue en la linea por supuesto no funcionara si se copia tal cual ya que se deben hacer los cambios pertinentes ....
Honestamente no entiendo a que te refieres.
Si funciona (tal cual) pero se debe recordar que al utilizar el objeto cin en su forma predeterminada para leer un caracter:
Código
  1. char ch;
  2.  
  3. cin >> ch;
Se descarta el espacio blanco (espacio, tabulador, avance de linea, etc.). Primero hay que cambiar el comportamiento del objeto para que no lo ignore (en este momento no recuerdo pero me parece es con un manipulador).

Un saludo

 :laugh:
lo siento bro, hice asi rapido el tema y no me fije, me confundi :xD
y bueno respondiendo a lo que dices, si el codigo necesita ser modificado segun las necesidades que uno tenga no? :)
pero para los que decian que no funcionaba.
me extraña que BlackZeroX (Astaroth) estaba confirmando que no funcionaba osea estaba de acuerdo con el creador del tema
que el, seguramente ni habia agregado las declaraciones...


Título: Re: Comparar string con retorno de carro , tabulador y demás caracteres especiales
Publicado por: hervasiop12345 en 22 Noviembre 2011, 19:02 pm
Gracias a todos por contestar. En cuanto a RHL, no vengas presumiendo de conocimientos cuando por lo visto anteriormente no tienes mucha idea. Leete si es necesario otra vez el tema y ya de paso entra y aprende algo de ortografía http://www.rae.es/rae.html. Todo esto dicho con el mejor fin


Título: Re: Comparar string con retorno de carro , tabulador y demás caracteres especiales
Publicado por: x64core en 23 Noviembre 2011, 05:39 am
Gracias a todos por contestar. En cuanto a RHL, no vengas presumiendo de conocimientos cuando por lo visto anteriormente no tienes mucha idea. Leete si es necesario otra vez el tema y ya de paso entra y aprende algo de ortografía http://www.rae.es/rae.html. Todo esto dicho con el mejor fin

 :laugh: :laugh: :laugh: :laugh: :laugh:

para nada no presumo nada hasta yo estoy en aprendizaje, y lo que dices de ortografia osea que
ahora para escribir un post se necesita tener una ortografia perfecta :xD perdona pero estas retrasado
aqui todas las personas son libres de escribir como se les de la gana no vengas a imponerme que
escriba con una buenas ortografia  :laugh: :laugh:
mejor vete con tus caracteres y bucles y tu complicada programacion :xD