2016-09-13 1 views
0

Bjarne Stroustrupの "Programming Principles and Practice Using C Plus Plus"、私は66ページにあります。この「中」の作業はどうすればできますか?

私は自分自身でいくつかのことを試しています。私はこれをVisual Studioで書いています:

#include "../../std_lib_facilities.h"; 

int main() 
{ 
    string first_name = " "; 
    string last_name; 
    int numbert = 0; 
    while (cin >> last_name) { 
     ++numbert; 
     if (last_name > first_name) 
      cout << first_name << ": plays guitar!\n" << last_name << " : plays bass!\n"; 
     } 
} 

私はそれがやりたいことはある:私は返すために、プロンプトで「レノン・マッカートニー」を書くとき:

Lennon: plays guitar! 
Mccartney: plays bass! 

しかし、私は取得していことです:

:plays guitar! 
Lennon: plays bass! 
:plays guitar! 
Mccartney: plays bass! 

私たちはすべて、マッカートニーが低音を演奏することを知っています。なぜ私はこれを取得していますか?どうすれば修正できますか?

ありがとうございました。

+1

ようこそを使用する必要がありますfirst_nameのための入力を取得されていません!デバッガを使用してコードをステップ実行する方法を学ぶ必要があるようです。良いデバッガを使用すると、プログラムを1行ずつ実行し、どこからずれているかを確認することができます。これはプログラミングをする場合に不可欠なツールです。さらに読む:** [小さなプログラムをデバッグする方法](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)** – NathanOliver

+8

[ヒント]あなたは 'string first_name = ""; '? – NathanOliver

+1

おそらくループは必要なく、入力文は2つだけです。 –

答えて

1

は、あなたがスタックオーバーフローにコードの下に

#include<iostream> 
    #include<string> 
    using namespace std; 

    int main() 
    { 
     string first_name = " "; 
     string last_name; 
     int numbert = 0; 
     while (cin >> first_name >>last_name) { 
      ++numbert; 
      if (last_name > first_name) 
       cout << first_name << ": plays guitar!\n" << last_name << " : plays bass!\n"; 
     } 
    } 
+0

ありがとう、男!それは私が学んでいるものに合っています。 –

+0

この質問を閉じる –

関連する問題