programma di saltare una riga di codice
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.
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