私は C++ を使い始めたばかりで、いくつかの練習問題でよくわからない問題に遭遇しました。次の形式でコンソールから行を読み取ることができる必要があります。
N A B C... etc.
ここで、N は数値であり、次の入力は、N の値に基づいてさまざまな種類とさまざまな量になります。
私のアプローチは、N を読み取り、N が何であるかに基づいてさまざまな入力を求めることです。しかし、私はすべての入力を 1 行で受け入れなければならず、単一のスペース文字の後に終了する入力形式を取得できませんでした。とにかく、単一の数字とスペース文字を受け取った後、次のステートメントに進むことができますか? または、この問題を解決するためのより良い方法はありますか? よろしくお願いします。
編集:
わかりましたが、完全には理解できていないので、istringstream を調べる必要があります。これが私が持っているものです。
vector<string> words;
string token, text;
getline(cin, text);
istringstream iss(text);
while ( getline(iss, token, ' ') ) {
words.push_back(token);
}
これは良い方法ですか、それとも別のアプローチを取るべきですか? 誰かができるなら、これらのセリフを説明してもらえますか?
while ( getline(iss, token, ' ') )
トークンを前のすべての文字で埋めながら、スペースに到達するとtrueを返すと思いますか?
そして、これは私を混乱させます。
getline(cin, text);