C++の改行についてです


cinを使って改行が行われるまで整数値 aに入力させてその値を`vector<int> in`にいれるにはどうすればいいですか？




「改行が行われるまで整数値aに入力させて」の下りが良くわからないのですが、最初の改行までの間に含まれている空白で区切られた複数の数値を入力する、と言う意味であれば、こんな感じではどうでしょうか。

[code]

    #include <iostream>
    #include <sstream>
    #include <vector>
    #include <iterator>
    #include <algorithm>
    
    int main()
    {
      std::vector<int> in;
      std::string line;
      if (std::getline(std::cin, line)) {
        std::istringstream ss(line);
        std::copy(std::istream_iterator<int>(ss), std::istream_iterator<int>(), std::back_inserter(in));
      }
    
      // 入力された内容を表示
      std::copy(in.begin(), in.end(), std::ostream_iterator<int>(std::cout, " "));
    }
    
[/code]

あるいは、どうしても変数 a を使いたければ、

[code]

    #include <iostream>
    #include <sstream>
    #include <vector>
    #include <iterator>
    #include <algorithm>
    
    int main()
    {
      std::vector<int> in;
      std::string line;
      if (std::getline(std::cin, line)) {
        std::istringstream ss(line);
        int a;
        while (ss >> a) {
          in.push_back(a);
        }
      }
    
      // 入力された内容を表示
      std::copy(in.begin(), in.end(), std::ostream_iterator<int>(std::cout, " "));
    }
    
[/code]

