J'ai un cours de livre qui prend le titre, l'auteur, le copyright, le numéro d'ISBN, et la caisse pour un objet de livre. Cependant, j'obtiens une erreur d'exécution lorsque le programme s'exécute. Après que l'utilisateur a entré le titre et appuyé sur Entrée, le programme bascule vers le bas, montrant le reste des sorties, puis termine le programme en donnant une erreur d'exécution.Erreur d'exécution, problème d'entrée possible?
J'ai essayé d'attraper une exception, mais je n'ai rien obtenu.
code:
#include "std_lib_facilities.h"
class Book{
public:
string what_title();
string what_author();
int what_copyright();
void store_ISBN();
void is_checkout();
private:
char check;
int ISBNfirst, ISBNsecond, ISBNthird;
char ISBNlast;
string title;
string author;
int copyright;
};
string Book::what_title()
{
cout << "Title: ";
cin >> title;
cout << endl;
return title;
}
string Book::what_author()
{
cout << "Author: ";
cin >> author;
cout << endl;
return author;
}
int Book::what_copyright()
{
cout << "Copyright Year: ";
cin >> copyright;
cout << endl;
return copyright;
}
void Book::store_ISBN()
{
bool test = false;
cout << "Enter ISBN number separated by spaces: ";
while(!test){
cin >> ISBNfirst >> ISBNsecond >> ISBNthird >> ISBNlast;
if((ISBNfirst || ISBNsecond || ISBNthird)<0 || (ISBNfirst || ISBNsecond || ISBNthird)>9)
error("Invalid entry.");
else if(!isdigit(ISBNlast) || !isalpha(ISBNlast))
error("Invalid entry.");
else test = true;}
}
void Book::is_checkout()
{
bool test = false;
cout << "Checked out?(Y or N): ";
while(!test){
cin >> check;
if(check = 'Y') test = true;
else if(check = 'N') test = true;
else error("Invalid value.");}
}
int main()
{
Book one;
one.what_title();
one.what_author();
one.what_copyright();
one.store_ISBN();
one.is_checkout();
keep_window_open();
}
Je ne sais pas ce que le problème pourrait être. Toute aide est appréciée, merci.
Exemple de sortie:
Titre: Vol au-dessus d'un nid de coucou (lignes suivantes ne sont pas réellement espacées entre les deux et toutes les sorties à la fois) Auteur:
Droit d'auteur Année:
Entrer le numéro ISBN séparé par des espaces:
Cette application a demandé au Runtime de le terminer de manière inhabituelle. Veuillez contacter le support pour plus d'informations.
Ne vous inquiétez pas non plus des fonctions keep_window_open et error. Ils font partie de std_lib_facilities.h et ne sont probablement pas à l'origine du problème. L'erreur génère simplement un message d'erreur si un problème est rencontré.
qu'est-ce que keep_window_open? –
Que diriez-vous de montrer tout le code nécessaire (comme Alex le suggère, keep_window_open), et aussi montrer l'entrée/sortie de votre programme afin que nous puissions voir exactement ce qui est imprimé et où il échoue. – Tom
Je viens de faire un rapide google de std_lib_facilities.h et c'est pour un cours ... il a une fonction keep_window_open: http://www.stroustrup.com/Programming/std_lib_facilities.h – Tom