在整数数组中获取连续输入

Taking continuos input in an integer array

本文关键字:连续 输入 获取 整数 数组      更新时间:2023-10-16

我正在尝试创建一个用于添加巨大整数的类。我有 2 个大小为 40 的数组,我想知道是否有任何方法可以在不执行老式方法的情况下进行输入:

for(int i=0;i<40;i++)
{
   std::cin >> arr[i];
}

这样,我必须输入 40 次。有没有办法像我们在cin.getline中那样接受输入?

不,您不能直接获取整数数组,因为此类型没有重载。您必须使用第三方库进行分析,或者为 operator>> 和数组定义额外的重载。例:

#include <iostream>
#include <array>
template <int  N>
std::istream & operator>>(std::istream & is, std::array<int, N> a)
{
  for(int i = 0; i < N; i++)
    is >> a[i];
  return is;
}
int main()
{
  std::array<int, 10> ar;
  std::cin >> ar;
  for(auto & e : ar)
    std::cout << e << ' ';
  return 0;
}