Cortar while(cin>>n) con windows XP

FrioneL

Holaquetal,

pues eso mismo, con que combinacion de teclas puedo indicarle a la peste de simbolo del sistema de windows que ya he terminado de introducir datos en un While (cin >> n) ?

gracias.

SeiYa

Vamos a ver la peste no es el símbolo del sistema es tu programa que apesta.

En vez de hacer

while(cin>>n)

Por que no haces

while((cin>>n)!= "exit") o lo que sea, entonces recogerá datos hasta que recoga "exit" ...

Vamos hay mil formas pero joder es que es como poner un while(true) y decir ¿porque es infinito mi bucle?

FrioneL

lo digo porque es una serie que no avisa cuando termina, entonces no puedo escribir nada para indicarle que acaba, llevo varios ejercicios que tenia que indicarle al while que quiero dejar de introducir datos, en linux es CONTROL+D pero aqui no se..

SeiYa

A ver, explícate, siempre hay formas de saber cuando se ha terminado de introducir algo para romper el bucle.

FrioneL

el programa me dice que introduzca una serie:
hola que tal hola adios hola hola

y yo le tengo que decir cuantas veces es el maximo que sale seguida la primera palabra, en ese caso 2.

Pero yo puedo estar introduciendo palabras infinitamente hasta que el while se cierre... ahi el problema, como cierro el while sin un centinela de esos xd.

En anteriores problemas tambien habia que cerrarlos con el acceso de linux: control+d, pero supongo que lo haremos asi porque aun no nos han enseñado a pararlo de otro modo.

PhYsIs

prueba con ctrl + z

FrioneL

#6 ese es!

gracias a los dos :):)

B

tan dificil es implemental un.........

"pulse 0 para acabar de introducir palabras" ¬¬

utilizar ctrl+z es un poco chapuza xD

FrioneL

#8 lo se xd pero de momento no nos han dicho nada asi que ~~

tengo una nueva duda:

el cin>> devuelve los valores que ha ido recibiendo, no?
Es decir, tengo que hacer un programa que dice esto:

"di cuantas veces en una serie aparece la ultima palabra de dicha serie"

ej: hola como estas hola hola estas hola

ultima palabra: hola
se repite: 4 veces


pero claro, primero el programa tiene que llegar a la ultima palabra y luego ir retrocediendo... el problema es que no se como hacer ese retroceso >_<

agradeceria mucho ayuda en este problema, porque el volver atras no lo tengo nada claro

gracias y saludos :)

PD: Si, tengo parciales de programacion la semana que viene xdd

SeiYa

arraaaaaaaaaaaaayyyyyyyyssssssssss

dagavi

No es tan chapuza, y menos si te lo exige un juego de pruebas para programas de la facultad.

Con while (cin >> x) pues lee una secuencia sin saber cuando acaba, si los de la facultad te dicen "leer una secuencia" pues a eso hay que aferrarse.

Además de que en la vida real tambien va bien, ejemplo:
Cuando salen las notas en mi facultad, al meterlas en el expediente se crea automáticamente una noticia en formato DNI NOTA, para que voy a estar editando el final para meter una marca si puedes hacer "mientras lee"

PD: Lógicamente las notas se meten leyendo de archivo, donde si sabe cuando acaba, el problema que tiene el es que si las metemos manualmente hay que decirle al programa "he acabado"

FrioneL

pues esop xd

a ver si alguien puede ayudarme con la duda en #9 que me lo piden varios juegos de prueba y no se como hacerlo :(

salu2 y gracias

dagavi

Dos posibilidades que tienes dependiendo de lo que te dejen hacer, si te dejan usar vectores podrás usar las 2 cosas, si no solo 1

Supongo que estás empezando y no suelen empezar enseñando (y no permiten usarlo) a ampliar y reducir vectores, así que te tendrían que dar un número N y crear un vector de N palabras. Después la solución es trivial:

Recorres el vector desde la posición 0 hasta n - 2 (la n - 1 es la última palabra) y comparas vector == vector[n - 1]

Si no puedes usar vectores puedes usar la recursividad donde no hace falta que te den el número de palabras por adelantado, pero esto mejor te lo dejo programado porque se me hace más difícil explicarlo con frases, y lo entenderás igual:

Con mucho comentario explicativo: http://pastebin.es/1664
Sin comentarios: http://pastebin.es/1665

PD1: Putu pastebin, lo he enviado 1000 veces xD
PD2: También podrías hacerlo usando variables globales, pero al menos a mi no me dejan usarlas por ahora, así que te lo he explicado sin ellas.

FrioneL

muchas gracias #13 :)
Es un poco lioso lo de como devuelve datos el if pero supongo que el proceso sera asi y no hay que buscarle mas asunto oO.

salu2

dagavi

Te envio por PM el seguimiento del programa recursivo para que entiendas porque funciona

B

#14 el jutge... es mi 3era vez en p1 y aun no m salgo con la puta asignatura..

Usuarios habituales