std :: istream的运算符类型无效?

时间:2015-05-26 15:14:46

标签: c++ user-input istream

所以我试图创建一个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 ++的新手,非常感谢任何帮助,谢谢!

3 个答案:

答案 0 :(得分:2)

这个怎么样?

#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;
}

答案 1 :(得分:1)

您的意思是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;
};

答案 2 :(得分:1)

您最好使用getline

string line;
cin.getline(line);

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