Domanda

Ho lavorato su questo programma per un po 'e alla fine ho sono liberato degli errori di compilazione. Ma quando l'ho provato, il programma sostanzialmente saltato una riga di codice.

#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;
}

vedere come dopo aver chiesto se questa è la pagina di indice salta la funzione cin.getline successivo, non importa lo scenario.

È stato utile?

Soluzione

Quando l'utente ha inserito l'indice, ma anche digitato un ritorno a capo, ma il vostro cin non ha rimosso dal flusso di input. Quindi, la chiamata a cin.getline ritorna immediatamente a causa del ritorno a capo avanzi.

Aggiungi una chiamata a cin.ignore prima della cin.getline per lavare fuori.

Altri suggerimenti

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

con

cin >> NameOfFile

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top