2017-05-31 2 views
-2

Ich habe ein kleines Skript gemacht, wo ich Arrays + Funktionen getestet habe + in C++ umschalten.ungültige Typen 'int [int]' für Array-Index-Kompilierung wegen -WFatal-Fehler beendet

Es ist noch nicht fertig, aber ich habe ein Problem mit meiner "Eingabe oder Eingabe" -Funktion.

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

Das Problem ist in Zeile 19/21: ungültigen Typen 'int [int]' für Array-Index Kompilierung aufgrund -Wfatal-Fehler beendet.

und in der zweiten Funktion main.cpp | 29 | Fehler: ungültige Typen 'int [int]' für Array-Index |

Was soll ich tun? Ich bin verwirrt :(

+0

"int WertA" ist ein einzelnes int. Sie können WertA [i] nicht davon erhalten, weil es kein Array ist. –

+1

Und warum kehren Ihre Void-Funktionen zurück? Erhalten Sie keine Warnungen? Wenn nicht, dann schalten Sie sie ein. – DeiDei

+0

Willkommen bei Stack Overflow. Bitte nehmen Sie sich die Zeit, [The Tour] (http://stackoverflow.com/tour) zu lesen und beziehen Sie sich auf das Material aus der [Hilfe] (http://stackoverflow.com/help/asking), was und wie Sie können fragen Sie hier. –

Antwort

1

Hier zum Beispiel:

void Eingabe(int WertA) 
{ 
    for (i=0; i<=4; i++) 
     cin >> WertA[i]; 
     ... 

was erwarten Sie passieren

WertA vom Typ int, es ist eine Zahl, und Sie versuchen, es zu indizieren wie es war, ein Array

Sie könnten indizieren, wenn der Prototyp war so etwas wie folgt aus:.

void Eingabe(int* WertA) 

was bedeuten würde, dass WertA ein Array von int s ist. Natürlich könnte das Array außerhalb der Funktion wie folgt aussehen:

int WertA[4]; 

Außerdem Sie in dieser Funktion später tun:

return WertA; 

während seiner Rückkehr Typ void ist, was zur Folge haben sollte in einem Kompilierungsfehler.

+1

... Solange Platz für 4 Ints außerhalb der Funktion erstellt wurde :) –

Verwandte Themen