2017-04-26 10 views
-2

私はELIZA(オンラインセラピスト)の簡単な質問と回答に類似した基本的なプログラムを書いていますが、最後には固執しています。 after cin >>答え。私は何も書くことができません。誰でも助けてくれれば大いに感謝します!また、私と一緒に裸で、私はプログラミングに新しいです。 「答え」という名前のC++は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

あなたのプログラムは 'cin >> answer'の後に終了します...あなたは何をする予定ですか? –

+0

プログラムのデバッグ中に何を観察しましたか? – Fureeish

+3

_「あなたが以前に誰にも言わなかったことがある」という意味は、「_」が数字であることを意味しましたか? – Chad

答えて

2

あなたの変数は、データ型の整数を持っています。あなたがコンソールから何かを入力するようにユーザにプロンプ​​トを表示すると(明らかに文字列になる)、cinオブジェクトは文字列を使って "答え"を初期化しようとします(おそらくプロンプトが数字を要求しないので)オブジェクトが指示をするのを許可しないので、次回にそれを使用したいときにはcinオブジェクトはありません。

"answer"のデータ型をstringに変更するだけです。

Dr t

+0

また、 'std :: cin'をこのように壊した後に修正する必要がある場合は、[' std :: cin.clear() '](http://stackoverflow.com/a/10877539/5386374 )を使ってエラーフラグをクリアした後、データを別の型として読み込もうとするか、['std :: cin.ignore()']で削除してください(http://stackoverflow.com/questions/25475384/when-なぜ、私が必要としているのは、Cで無視する必要がありますか? –

+0

あああ、ありがとう! –

関連する問題