Pregunta

He estado trabajando en este programa por un tiempo y finalmente se deshizo de los errores de compilación. Pero cuando lo probé, el programa básicamente se saltó una línea de código.

#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int main(){
  string nameOfFile = "";
  char index;
  char title[100];
  char name[100];
  char copyright[100];

  cout << "Welcome, and hello to the html templating software" << endl;
  cout << "Is this your index page?\ny/n" << endl;

  cin >> index;
  if (index=='n'){
    cout << "Enter the prefered name of this file" << endl;
    getline(cin, nameOfFile, '\n');
  }

  cout << "What will the title of the page be?" << endl;
  cin.getline(title, 100);

  cout << "What is your name?" << endl;
  cin.getline(name, 100);

  cout << "What is the copyright?" << endl;
  cin.getline(copyright, 100);

  cin.get();
  return 0;
}

ver cómo después de preguntar si esta es su página de índice se salta la siguiente función cin.getline sin importar el escenario.

¿Fue útil?

Solución

Cuando el usuario introduce el índice, sino que también ha escrito una nueva línea, pero su cin no sacarlo de la corriente de entrada. Por lo tanto, su llamada a los rendimientos cin.getline de inmediato debido a la nueva línea de sobra.

Añadir una llamada a cin.ignore antes de la cin.getline para el flujo al exterior.

Otros consejos

reemplazar getline (cin, NameOfFile, '\ n')

con

cin >> NameOfFile

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top