当我运行这段代码时
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
int main() {
int Array[100];
cin >> Array;
return 0;
}
字符串
我在cin
行得到以下错误消息:
二进制表达式(“std::__1::istream”(又名“basic_istream”)和“int *”)的操作数无效
为什么不能直接输入数组?我该如何解决这个问题?
7条答案
按热度按时间hzbexzde1#
对于更现代的C++方法:
字符串
并做
型
或者你可以把它作为operator>> overload
型
wvmv3b1j2#
你应该循环数组元素:
字符串
但是,尽量不要使用大写的变量名,因为它们通常用于命名对象/类和其他东西
mwyxok5s3#
可以写一个
>>
的重载来读入一个c风格的数组,然后main
就可以正常工作了。字符串
iyfjxgzm4#
你需要遍历每个数组元素来获取值,所以你应该使用迭代器或循环(for,while或do while)。没有直接的方法来获得整个数组的值。
让我试着进一步解释一下,数组只是一个连续的内存,可以保存定义类型的元素数量。没有办法知道在运行时需要存储的元素的数量,或者简单地说,没有办法知道一个数组有多大,它可以包含多少元素。这就是为什么数组溢出是非常常见的问题,因为数组没有结束分隔符,并且使用数组指针可以尽可能长地使用。希望这能帮助你更好地理解。
x4shl7ld5#
你应该使用循环来输入num by num
字符串
r7knjye26#
如果不重载
>>
运算符,就不可能cin
一个数组。但是,您可以按以下方式声明它字符串
8wtpewkr7#
字符串
以这种方式获取数组输入。