2012-02-11 5 views
0

私はC++を習得しようとしています.1つは、ユーザー入力を受け入れ、空の行が入力されるまでchar配列に格納するコマンドラインツールを構築することです。私は骨格が正しいと思うが、何らかの理由で私の中が連続的に走っている。私のコードは次の通りです。のC++テスト n

char a[256]; 

    //while the first character isn't a new line 
    while (a[0] != '\n') { 

     //get the char array 
     cin >> a; 

     cout << a; 

    } 

何か助けがあれば幸いです。

+9

あなたが本当にC++を学ぼうとしているのであれば、あなたが使っているチュートリアルを書いて、あなたに[正しく文字列を書く方法を教えてくれる本を買ってください。 no-ip.org/fncpp/Resources)。 –

答えて

3

operator>>で改行を検出することはできません。ほとんどの型では、空白を区切り文字として使用し、空白、タブ、改行を区別しません。代わりにgetlineを使用してください:

1

:char配列の代わりにstd :: stringを使用し、便利な変数名を選択します。

#include <iostream> 
#include <string> 

using namespace std; 

int main() 
{ 
    for(string text;getline(cin, text);) { 
     if (!text.empty()) { 
      cout << text << endl; 
     } else { 
      break; 
     }  
    } 
} 
+1

コードをテストします。 http://ideone.com/wDFGw –

+0

Benjaminに感謝、私はideone.comを知らなかった - http://ideone.com/Z95Ef –

+0

さて、出力を見てください。 OPが求めているように空の行に止まるわけではありません。 –

関連する問題