如何将 cin 用于数组

新手上路,请多包涵

当我运行这段代码

#include <iostream>
#include <string>
#include <math.h>
using namespace std;

int main() {

    int Array[100];

    cin >> Array;

    return 0;
}

我在 cin 行收到以下错误消息:

二进制表达式的无效操作数 (‘std::__1::istream’ (aka ‘basic_istream’) 和 ‘int *

为什么不能直接输入数组?我该如何解决这个问题?

原文由 Elias S. 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 668
1 个回答

可以编写 >> 的重载来读入 c 风格的数组,然后你的 main 就可以正常工作。

 template <typename T, std::size_t N>
std::istream & operator>>(std::istream & is, T (&arr)[N])
{
    std::copy_n(std::istream_iterator<T>(is), N, arr);
    return is;
}

原文由 Caleth 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题