0

我已经一年多没有用 C++ 编码了,我看不到这段代码中的错误。

它说 cin 函数有错误,no such operator >>

int main()
{
    double * array[25];
    bool exitCode = false;
    cout <<"Enter in your Array"<<endl;
    do{
        for(int i = 0; i < 24; i++)
        {
            cout<< "Enter your float number";
            cin >> array[i];

            cout << "Are there any more inputs?: ( Y or N )";
            cin >> exitCode; // error is here
        }
    }while(exitCode == false);

    return array;
}
4

4 回答 4

2

确保包含以下内容:

<fstream>
<istream>
<iostream>
<string>
于 2012-04-18T02:32:56.650 回答
1

尝试这个:

#include<iostream>

using namespace std;

int main()
{
    double array1[25];
    char exitCode;
    cout <<"Enter in your Array"<<endl;
    do{
        for(int i = 0; i < 24; i++)
        {
            cout<< "Enter your float number";
            cin >> array1[i];

            cout << "Are there any more inputs?: ( Y or N )";
            cin >> exitCode; // error is here
        }
    }while(exitCode == 'y');

    return 0;
}

我想知道为什么只将指针和数组存储在数组中(而不使用指针)>。>

因此,exitCodeboolean(我认为这是它出错的原因)

于 2012-04-18T02:43:35.927 回答
1

让我们一行一行地看:

改变

双 * 数组 [25];

双数组[25];

原因: double *是一个指向双精度的指针,所以在原文中您声明了一个包含 25 个指针的数组,但没有理由在这里使用指针。你想要一个包含 25 个双精度数的数组。

do{
    for(int i = 0; i < 24; i++)

您在 while 循环中声明了一个 for 循环。在您的示例中,您只需要一个循环。

cout << "还有输入吗?: ( Y or N )";

您要求用户输入字符。但是cin >> exitCode;,在阅读 bool 时,您可能想阅读char.

返回数组;

你返回一个array, main 返回一个int

这是具有上述修复的代码,正确包括:

#include <iostream>
using namespace std;
int main()
{
double array[25];
cout <<"Enter in your Array"<<endl;

for(int i = 0; i < 24; i++)
{
    cout<< "Enter your float number";
    cin >> array[i];

    cout << "Are there any more inputs?: ( Y or N )";
    char c;
    cin >> c;
    if (c == 'N')
    {
        break;
    }
}

return 0;
}
于 2012-04-18T02:47:42.320 回答
0

您将“array”声明为指向双精度数的指针数组。我怀疑那是你真正想要的,但是,无论如何,'cin' 上的 '<<' 运算符不支持,所以这是无效的:

cin >> array[i];

您必须将其更改为

cin >> *array[i];

使其编译。(由于指针未初始化,它不会运行。)

我认为你可能想要的是'array'只是一个双打数组。

于 2012-04-18T02:48:18.283 回答