0

私は 1 年以上 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

この行を1行ずつ見ていきましょう。

変化する

double * array [25];

ダブルアレイ[25];

理由: double *はdoubleへのポインターであるため、オリジナルでは25個のポインターの配列を宣言しましたが、ここでポインターを使用する必要がある理由はありません。25個のdoubleの配列が必要です。

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

whileループ内でforループを宣言しました。この例では、ループが1つだけ必要です。

cout << "これ以上入力はありますか?:( YまたはN)";

ユーザーからの文字入力を求めています。ただしcin >> exitCode;、ブール値を読んでいる場合は、おそらく。を読みたいと思います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 に答える
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;
}

配列に格納するだけで (ポインターを使用しない)、なぜポインターと配列を使用しているのか疑問に思います >.>

したがって、exitCodeですboolean(エラーが発生した理由だと思います)

于 2012-04-18T02:43:35.927 に答える
0

'array'をdoubleへのポインタの配列として宣言しました。それがあなたが実際に望んでいることではないかと思いますが、とにかく、'cin'の'<<'演算子はそれをサポートしていないので、これは無効です:

cin >> array[i];

あなたはそれをに変更する必要があります

cin >> *array[i];

コンパイルします。(ポインターが初期化されていないため、実行されません。)

おそらくあなたが望むのは、'array'をdoubleの配列にすることだと思います。

于 2012-04-18T02:48:18.283 に答える