由于-Wfatal-errors

时间:2017-05-31 19:32:25

标签: c++ function

我在c ++中测试数组+函数+ switch case时做了一个小脚本。

尚未完成,但我的“输入或输入”功能出现了问题。

#include <iostream>
#include <conio.h>
#include <string>

using namespace std;

int Groesse[6];
int Gewicht[6];
string Name[6];
int i;
int Auswahl;

void Eingabe(int WertA)
{
    cout << "Bitte die die Liste fuellen: " << endl;
    for (i=0; i<=4; i++)
    {
        cin >> WertA[i];   
    }
    return WertA;
}

void Ausgabe (int WertB)
{
    cout << "Folgende Werte wurden eingegeben: "<< endl;
    for (i=0; i<=4;i++)
    {
        cout << WertB[i];
    }
    return 0;
}

int main()
{
    cout << "Bitte die Groessen eingeben: "<< endl;
    Eingabe(Groesse);
    cout << "Bitte das zugehoerige Gewicht eingeben: " << endl;
    for (i= 0; i<=4; i++)
    {
        cout << "Gewicht" <<i+1 << ": ";
        cin >> Gewicht[i];
    }
    cout << "Bitte den Zugehoerigen Namen angeben" << endl;
    for (i=0; i<=4; i++)
    {
        cout<< "Name" <<i+1<<": ";
        cin >> Name[i];
    }

    cout << "Wonach wollen Sie suchen? Druecken Sie: " << endl;
    cout << "(1)Groesse oder (2) Name oder (3) Gewicht " << endl;
    cin >> Auswahl;

switch (Auswahl)
    {
    case ('1'):
       cout << "Geben Sie die Gesuchte nummer an von 0-4" << endl;
       cin >> i;
       cout << Groesse[i], Gewicht[i], Name[i];
       break;


    case ('2'):
       cout << "Geben Sie die Gesuchte nummer an von 0-4" << endl;
       cin >> i;
       cout << Groesse[i], Gewicht[i], Name[i];
       break;


    default:
        cout <<"Falsche Eingabe bitte Widerhollen" << endl;
        break;
    }
    return 0;
}

问题出在第19/21行: 由于-Wfatal-errors,数组下标编译的无效类型'int [int]'终止。

并在第二个功能 main.cpp | 29 | error:数组下标|

的类型'int [int]'无效

我该怎么办?我很困惑:(

1 个答案:

答案 0 :(得分:1)

这里,例如:

void Eingabe(int WertA)
{
    for (i=0; i<=4; i++)
        cin >> WertA[i];   
        ...
你期望发生什么?

WertA属于int类型,它是一个数字,您尝试将其编入索引,就像它是一个数组一样。

如果原型是这样的话,你可以索引它:

void Eingabe(int* WertA)

表示WertAint的数组。当然,在函数之外,数组可能如下所示:

int WertA[4];

此外,您稍后会执行该功能:

return WertA;

,而其返回类型为void,这会导致编译错误。