我在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]'无效我该怎么办?我很困惑:(
答案 0 :(得分:1)
这里,例如:
void Eingabe(int WertA)
{
for (i=0; i<=4; i++)
cin >> WertA[i];
...
你期望发生什么?
WertA
属于int
类型,它是一个数字,您尝试将其编入索引,就像它是一个数组一样。
如果原型是这样的话,你可以索引它:
void Eingabe(int* WertA)
表示WertA
是int
的数组。当然,在函数之外,数组可能如下所示:
int WertA[4];
此外,您稍后会执行该功能:
return WertA;
,而其返回类型为void
,这会导致编译错误。