std::istream的操作符类型无效

Invalid operator type of std::istream?

本文关键字:类型 无效 操作符 istream std      更新时间:2023-10-16

所以我试图创建一个c++程序,读取数字列表(用户输入由空格分隔的5个数字的列表)并打印出反向列表。到目前为止,这是我所拥有的:

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <string>
#pragma warning(disable: 4996)
using namespace std;
int* get_Number() { 
int* p = new int[32];
cout << "Please enter a list of 5 numbers, separated by spaces" << endl;
cin >> p;
return p;
};

int* reverseArray(int* numArray)
{
}

我的问题是我一直得到这个错误:

Error: no operator ">>" matches these operands. Operand types are: std::istream >> int * 

cin >> p线上。

我做错了什么?我是c++的新手,任何帮助都将非常感激,谢谢!!

这个怎么样?

#include <iostream>
int main(int argc, char* argv[])
{
    int nums[5];
    std::cout << "Please enter a list of 5 numbers, separated by spaces" << std::endl;
    for (int i = 0; i < 5; ++i)
        std::cin >> nums[i];
    for (int i = 0; i < 5; ++i)
        std::cout << nums[i];
    return 0;
}

你最好使用getline

string line;
cin.getline(line);

它会为你做一些很好的事情,比如调整大小

您的意思是cin >> p[i],其中i是您的代码中缺少的索引吗?

当前你正在读一个指针,但你打算读到你的数组,对吗?

试试这个

int* get_Number() { 
    int* p = new int[32];
    for (int i = 0; i < 5; i++)
    {
       cout << "Please enter a number" << endl;
       cin >> p[i];
    }
    return p;
};