Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/125.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 操作员不匹配,为什么此代码未获得cin? #包括 模板 无效长度(TA[200]) { std::cout_C++ - Fatal编程技术网

C++ 操作员不匹配,为什么此代码未获得cin? #包括 模板 无效长度(TA[200]) { std::cout

C++ 操作员不匹配,为什么此代码未获得cin? #包括 模板 无效长度(TA[200]) { std::cout,c++,C++,您不能像std::cin>>a;那样直接输入到数组中。您需要做的是在数组中循环并将输入插入到每个元素中。您可以使用 #include <iostream> template <typename T> void Len(T a[200]) { std::cout<< sizeof(a) / sizeof(a[0])<<std::endl; } int main() { int a[300]; std::cout<&

您不能像
std::cin>>a;
那样直接输入到数组中。您需要做的是在数组中循环并将输入插入到每个元素中。您可以使用

#include <iostream>


template <typename T>
void Len(T a[200])
{
    std::cout<< sizeof(a) / sizeof(a[0])<<std::endl;
}

int main()
{
    int a[300];
    std::cout<<"Put the values of array you want."<<std::endl;
    std::cin>>a;
    std::cout<<"The number of occurrences of value in the array is";
    Len(a);

}

不能像
std::cin>>a;
那样直接输入到数组中。需要做的是在数组中循环并将输入插入到每个元素中。可以使用

#include <iostream>


template <typename T>
void Len(T a[200])
{
    std::cout<< sizeof(a) / sizeof(a[0])<<std::endl;
}

int main()
{
    int a[300];
    std::cout<<"Put the values of array you want."<<std::endl;
    std::cin>>a;
    std::cout<<"The number of occurrences of value in the array is";
    Len(a);

}

你不能像那样输入数组,你必须一个接一个地读取每个条目(例如在一个循环中)。此外,当你把数组传递给一个函数时,当你在
Len
函数中执行
sizeof(a)
时,你不会得到数组的大小,而是得到指针的大小(这将是
8
4
,具体取决于您是在64位还是32位平台上)。与其随机尝试代码,您应该从优秀的软件中学习。您不能像那样输入数组,您必须逐个读取每个条目(例如在循环中)。此外,如果将数组传递给函数,数组将衰减为指针,当您在
Len
函数中执行
sizeof(a)
时,将不会得到数组的大小,而是指针的大小(将是
8
4
,具体取决于您是在64位还是32位平台上)。与其随机尝试代码,你应该从一个好的方法中学习。我会在循环条件中添加文件结束或失败的检查。我知道我会厌倦在几个数字之后输入数字,输入300是非常多的,我只会按组合键。:)@JoachimPileborg我将输入添加到条件部分。这应该可以处理这些情况。我会在循环条件中添加一个文件结束或失败检查。我知道我只需输入几个数字就会厌倦输入数字,输入300太多了,我只需按platforms EOF组合键即可。:@JoachimPileborg我添加了输入到条件部分。该部分应处理这些情况。
template <typename T>
void Len(T a[200])
{
    std::cout<< sizeof(a) / sizeof(a[0])<<std::endl;
}
template <typename T, typename size_t N>
size_t get_array_size(T (&)[N])
{
    return N;
}