0

そのため、C++ でのユーザー入力から不明な量の文字列を解析しようとしており、それらをベクトルに格納したいと考えています。

どうすればいいのかわかりません。

つまり、ユーザーが次のように入力したとします。 Money Linux fire Computers

各単語を取得してベクトルに保存できるようにしたいと考えています。私はもともとこのようなものを持っていましたが、ひどく失敗しました:

while(in!="")
{
    cin>>in;
    input.push_back(in);
}

どこから始めるべきかについての指針はありますか?

4

2 に答える 2

3

条件チェック以外で入力操作を使用しないでください。コードを記述する標準的な方法は次のとおりです。

std::vector<std::string> result;
for (std::string word; std::cin >> word; ) { result.push_back(word); }

(C++11 では、代わりに言うことができますresult.emplace_back(std::move(word));。)

于 2012-05-06T14:43:59.650 に答える
0
string in;
while (cin >> in) {
    input.push_back(in);
}

ストリームの>>オペレーターはストリームを返します。std :: istreamは、良好な状態であるかどうかをチェックすることによってブール値に変換されます。入力の最後に達すると、式はfalse次の読み取りになります。

抽出が失敗すると、in引数に空白の文字列が書き込まれないため、ループが機能しませんでした。

于 2012-05-06T14:42:30.980 に答える