2017-04-26 2 views
-2

Im écrire un programme de base, similaire à ELIZA (thérapeute en ligne) des questions simples et des réponses, mais je suis resté à la fin. après cin >> réponse; Je ne suis pas capable d'écrire quoi que ce soit. Si quelqu'un peut aider ce serait grandement apprécié! Aussi nu avec moi, im nouveau à la programmation. Votre variable nommée "réponse" a un type de données entier.C++ impossible de taper après cin >> answer;

int main() { 
    short number; 
    string color; 
    string sport; 
    int answer; 
    string travel; 


    // Greets user 
    cout << "Hello, I'm Samantha" << endl; 
    // Asks user for their favorite sport 
    cout << "What's your favorite sport?"; 
    cin >> sport; 
    cout << "I like " << sport << " too!" << endl; 
    cout << "How about your favorite color?"; 
    cin >> color; 
    cout << "Not my favorite color but it's nice!" << endl; 
    cout << "Tell me something you've never told anyone before"; 
    cin >> answer; 
    cout << "Don't worry, your secret is safe with me!" << endl; 
    cout << "Hows your life going?"; 
    cin >> answer; 

return 0; 
} 
+1

Votre programme se termine après 'cin >> answer' ... qu'est-ce que vous attendez de lui? –

+0

Qu'avez-vous observé lors du débogage de votre programme? Si vous ne l'avez pas déjà essayé, faites-le – Fureeish

+3

Voulez-vous dire pour _ "quelque chose que vous n'avez jamais dit à personne avant" _ être un nombre? – Chad

Répondre

2

la première fois que vous invitez l'utilisateur à entrer quelque chose depuis la console (apparemment une chaîne), l'objet cin tente d'initialiser "answer" avec une chaîne (probablement parce que les invites ne demandent pas de numéro), ce qui tue l'objet cin qui ne permettra pas à l'objet de prendre des instructions ... donc la prochaine fois que vous voulez l'utiliser, il n'y a pas d'objet cin. Il suffit de changer le type de données pour "réponse" à la chaîne.

Dr t

+0

Notez également que si vous devez corriger 'std :: cin' après l'avoir cassé comme ceci, vous utilisez [' std :: cin.clear() '] (http://stackoverflow.com/a/10877539/5386374) pour effacer le drapeau d'erreur, alors soit essayez de lire les données comme un type différent, ou supprimez-le avec ['std :: cin.ignore()'] (http://stackoverflow.com/questions/25475384/when et-pourquoi-faire-je-besoin-d'utiliser-cin-ignore-en-c). –

+0

Ahhhhh merci beaucoup! –