Tema destacado: ¡Aprende hacking con práctica! - arZone, el wargame de elhacker.net
Autor
|
Tema: Comparar string con retorno de carro , tabulador y demás caracteres especiales (Leído 1,228 veces)
|
hervasiop12345
Desconectado
Mensajes: 33
|
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. #include<string> #include<iostream> using namespace std; int main(){ string comando; while(comando!="\n"){ cin>>comando; } return 0; }
|
|
|
|
|
En línea
|
|
|
|
RHL
Desconectado
Mensajes: 968
mental
|
hola , malo: string comando; int main(){ char comando; while(comando != Special Char) { cin>>comando; } return 0; }
|
|
|
|
|
En línea
|
|
|
|
hervasiop12345
Desconectado
Mensajes: 33
|
hola , malo: string comando; int main(){ char comando; while(comando != Special Char) { cin>>comando; } return 0; } no funciona
|
|
|
|
|
En línea
|
|
|
|
BlackZeroX (Astaroth)
Wiki
Desconectado
Mensajes: 2.831
I'Love...!¡.
|
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!¡.
|
|
|
|
|
En línea
|
|
|
|
hervasiop12345
Desconectado
Mensajes: 33
|
A ver si te crees que lo he puesto tal cual. #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
|
|
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 382
|
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: #include <iostream> using std::cin; using std::cout; using std::endl; using std::getline; #include <string> using std::string; int main() { string linea; char delim = '\n'; getline(cin, linea, delim); cout << "La linea es " << '\"' << linea << '\"' << endl; return 0; } Un saludo
|
|
|
|
|
En línea
|
The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz
|
|
|
RyogiShiki
Desconectado
Mensajes: 709
げんしけん - Hikkikomori FTW!!!
|
Aquí un ejemplo sin el uso de char y puro String: #include <iostream> #include <string> using namespace std; int main() { string s; do { getline(cin, s); cout << s << endl; } while (s.find('\t') == string::npos); return 0; } saludos
|
|
|
|
« Última modificación: 22 Noviembre 2011, 17:07 por RyogiShiki »
|
En línea
|
|
|
|
RHL
Desconectado
Mensajes: 968
mental
|
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 #include <iostream> using namespace std; int main() { char comando; while(comando != 'a') { cin>>comando; } return 0; } el codigo lee y sale del bucle si detecta la letra "a" y un enter 
|
|
|
|
|
En línea
|
|
|
|
rir3760
Desconectado
Mensajes: 382
|
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: char ch; 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
|
|
|
|
|
En línea
|
The capacity to learn is a gift; The ability to learn is a skill; The willingness to learn is a choice. -- Rebec of Ginaz
|
|
|
RHL
Desconectado
Mensajes: 968
mental
|
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: char ch; 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 lo siento bro, hice asi rapido el tema y no me fije, me confundi  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...
|
|
|
|
|
En línea
|
|
|
|
hervasiop12345
Desconectado
Mensajes: 33
|
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
|
|
|
|
|
En línea
|
|
|
|
RHL
Desconectado
Mensajes: 968
mental
|
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  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  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 mejor vete con tus caracteres y bucles y tu complicada programacion 
|
|
|
|
|
En línea
|
|
|
|
|
|