Ver Mensaje Individual
  #4 (permalink)  
Antiguo 22/10/2010, 09:20
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Editor de texto

No era necesario quitar el do...while, el problema con tu código corregido es que cuando la cadena está vacía, lee un nuevo caracter. Seguramente se esté "comiendo" el primer caracter de la línea siguiente a una línea vacía debido a eso.

Código C++:
Ver original
  1. bool continuar = true;
  2. do {
  3.     cin.getline (texto, 1000);
  4.     if ( (strlen(texto) == 1) && (texto[0] == '.') ) {
  5.         continuar = false;
  6.     } else {
  7.         // guardar línea
  8.     }
  9. } while (continuar);

Otra cosa: no es necesario considerar el caso de una línea vacía, la forma en la que estás escribiendo (cout << texto <<endl) asegura que habrá un salto de línea, y como texto está vacía, ese salto de línea será lo único que se escriba.


Saludos.