2017-06-27 9 views
-2
std::vector<std::string> words; 
std::string word; 
while (std::cin >> word) 
words.push_back(word); 
cout<<words[1]; 

これを使用して、入力を使用して空白文字の配列を作成します。ただし、Enterを使用して文末を入力した後、出力が得られません。C++で単語の配列として入力する

+0

ようこそスタックオーバーフロー。 [The Tour](http://stackoverflow.com/tour)を読み、[ヘルプセンター](http://stackoverflow.com/help/asking)の資料を参考にしてください。ここに聞いてください。 –

+0

また、ベクターインデックスをゼロから始める場合は、ベクトルat()メソッドを使用すると境界外の例外が発生する可能性があります。 –

+2

[Works fine](http://ideone.com/zh6irX) –

答えて

2

これを使用して、入力を使用して、空白文字を含む単語の配列を作成します。ただし、Enterを使用して文の終わりの後に出力が得られません。あなたがを押したときに

while (std::cin >> word) 
    words.push_back(word); 

が停止しないためです

std::cinにデータがないときには停止し

入力します。 whileループから抜け出すためにEOFを入力する必要があります。

有用なリンク:How do i enter an EOF character in this program?。代わりに

cin<<word 

getline(cin,word) 

を使用して

+0

cinを使って空白を含む単語を入力できないようにするには、 –

+0

@RamakanthPuttaの質問にあるように、OPは空白で区切られた単語を読みたいと思っています。 –

+0

はい、そうかもしれません。 –

0

は空白と入力ワードにあなたをできるようになります。

はあっても、ベクターは

words[0] 

代わり

words[1] 

意志出力入力値の出力したがって、インデックス0から始まります。それが問題だ。

関連する問題