Array, Probleme mit Zuweisungen
-
Hallo
Ich hab ein Problem mit Arrays, und zwar funktionieren die Zuweisungen nicht so wie sie es sollten. Ich versuchs zwar wie es in meinem Buch beschrieben ist, aber es geht nicht so wirklich.
Also nehmen wir an ich hab:
string produktname[]; // Name der Produkte. int produktkosten[]; // Kosten der Produkte.Mit den Klammern signalisier ich ja das es ein Array ist (hab auch versucht es mit Zahlen in den Klammern zu machen, ging aber auch nicht), doch wie soll ich jetzt Sachen zuweisen?
produktname[] = {"Kaffee", "Heiße Schokolade", "Pfefferminztee", "Cappuchino", "Kaffe Latte"}; produktkosten[] = {50, 60, 45, 90, 110};So geht es ja nicht oder? Sonst hätte ich es ja gleich direkt oben schon dazu machen können, wo ich auch die Variablen erstellt hab.
Die Suche hat mir leider auch nicht geholfen und tutorials genau so wenig
Hat jemand en Tipp?Es müsste doch eigentlich stimmen oder? Ich bekomm aber immer Fehler.
kaffeeautomat.cpp: In member function »void automatenaufbau::produktanzeige()«: kaffeeautomat.cpp:35: Fehler: expected primary-expression before »]« token kaffeeautomat.cpp:35: Fehler: expected primary-expression before »{« token kaffeeautomat.cpp:35: Fehler: expected `;' before »{« token kaffeeautomat.cpp:36: Fehler: expected primary-expression before »]« token kaffeeautomat.cpp:36: Fehler: expected primary-expression before »{« token kaffeeautomat.cpp:36: Fehler: expected `;' before »{« tokenEgal wie ich es mach, der Fehler kommt immer

Danke
-
man kann initialisierunslisten nicht in zuweisungen nutzen
und arrays ohne initialisierungsliste benötigen afair eine größenangabe
-
Also muss ich die wo ich die Variablen erstell auch direkt zuweisen oder wie?
-
Maddy schrieb:
Also muss ich die wo ich die Variablen erstell auch direkt zuweisen oder wie?
Noe, kannst du ja auch spaeter machen: produktname[ 0 ]= "nice cup of stfu"; f'`8k
AutocogitoGruß, TGGC (making great games since 1992)
-
Egal wie ich es mache, der Fehler bleibt bestehen

Gruß
-
Entweder so:
#include <string> using namespace std; int main(void) { string Produktnamen[] = {"Kaffee", "Heisse Schokolade", "Pfefferminztee", "Cappuchino", "Kaffe Latte"}; //Hab das 'ß' mal entfernt int Produktkosten[] = {50, 60, 45, 90, 110}; return 0; }Oder
#include <string> using namespace std; int main(void) { string Produktnamen[5]; int Produktkosten[5]; Produktnamen[0] = "Kafee"; Produktnamen[1] = "Heisse Schokolade"; //... Produktkosten[0] = 50; Produktkosten[1] = 60; return 0; }Wie gesagt, kann man die Initialisierungslisten halt nur bei einer Variablendefinition benutzen. Wenn man das nicht macht, muss bei einer Array-Definition eine Größenangabe erfolgen (mit[5]). Die Indizes gehen dann von 0..n-1, also in dem Fall von 0..4.
Außerdem würde ich in deinem Beispiel (wenn ein Zusammenhang zwischen den Namen und den Kosten bestehen soll) eher ein Array (oder eine Liste) von std::pair<std::string, int> oder direkt eine std::map<std::string, int> nehmen.
Felix
-
Danke für die Tipps *g* Habs jetzt hinbekommen

Gruß