Variablennamen zusammenfügen ?
-
Nabend zusammen,
ich stehe grade vor dem Problem, dass ich mehrere getrennte Namen von Variablen zusammenfügen muss.
Hier ein Beispiel
#include <iostream> using namespace std; // Folgende Variablen sollen nachher ausgegeben werden int Variable1 = 5; int Variable2 = 3; int Variable3 = 2; int main(){ // In folgender Schleife sollen sie zusammengefügt und ausgegeben werden for(int i = 1; i <= 3; i++){ cout << Variable + i << endl; } // Dass mit Variable + i ist nur provisorisch. // Hier liegt das Problem. Ich erhalte den error `Variable' was not declared in this scope // Wie füge ich Variable und i zusammen ? Am Ende soll 5 3 und 2 ausgegeben werden. return 0; }
Wie kriege ich die for-Schleife so hin, dass sie mir die Werte von Variable1, Variable2 und Variable3 ausgibt ?
Danke für eure Mühen.
Lg
SalamiDealer
-
Das geht nicht. Dafür gibt es z.B. Arrays:
int main() { int variable{3} = { 5, 3, 2 }; for (int i = 0; i < 3; ++i) cout << variable{i] << endl; }
-
Achso alles klar, danke.
Wie wird das denn gemacht, wenn ich sowas hier habe:
Artikel1.Preis
Artikel2.Preis
Artikel3.Preis
..Habe jetzt ein bisschen mit arrays rumprobiert, aber mir ist da nichts gelungen.
-
SalamiDealer schrieb:
Achso alles klar, danke.
Wie wird das denn gemacht, wenn ich sowas hier habe:
Artikel1.Preis
Artikel2.Preis
Artikel3.Preis
..Habe jetzt ein bisschen mit arrays rumprobiert, aber mir ist da nichts gelungen.
Daraus macht man dann, wenn man mit arrays arbeiten möchte, sowas:
Artikel[1].Preis Artikel[2].Preis Artikel[3].Preis
War es das, was du wissen wolltest?
-
Hi,
wenn ich das so mache, erhalte ich eine Fehlermeldung.
request for member `Name' in `Artikel[i]', which is of non-class type `char'char Artikel[4] = {1, 2, 3, 4}; for(int i = 1; i < 4; i++){ cout << "Name: " << Artikel[i].Name << endl; cout << "Preis: " << Artikel[i].Preis << endl; cout << "Art: " << Artikel[i].Art << endl; cout << "Verfuegbar: " << Artikel[i].Verfuegbar << endl; }
-
das mit dem "Name", "Preis", etc kann so nicht funktionieren.
woher soll dein
char Artikel[4] = {1, 2, 3, 4};
irgendwas von Name, Preis, etc wissen?!?
Zudem sollte man char Datentypen nicht mit zahlen (int) füllen...
Das was du suchst nennt sich structP.S. das ist nicht zufällig eine Hausaufgabe?!?
-
Grundsätzlich: Kenntnisse zu den Datentypen nacharbeiten!
char dient dazu genau ein Zeichen zu speichern.
char Artikel[4] = {1, 2, 3, 4};
Reserviere ein Array mit dem Namen 'Artikel', der Länge 4, des Typs char und initialisiere dieses mit den Werten 1, 2, 3, 4.
Ich denke nicht, dass es das ist, was du damit ausdrücken willst.
Was du in deinem Anwendungsfall suchst, ist eine Klasse (structs sind Klassen):
struct Artikel { std::string name; long int preis; std::string art; bool verfuegbar; };
Diese dann angelegt als Array (Datenfeld):
const size_t maxArtikel = 10u; Array artikel[maxArtikel]; // ... artikel[2u].name = "FooBar" // ... std::cout << artikel[2u].name << std::endl;
Abschließend griffe ich in solchen Fällen doch eher zu std::vector.
Grüße... Heiko
PS. Bei Fragen: www.ask.de
-
Hi und danke ^^
Ne mit Hausaufgaben hab ich schon lange nicht mehr am Hut
Das was ich da gezeigt habe, ist auch nur ein ausschnitt, und ist zur Übung. Habe grade structs durchgenommen.Hier der gesammte Code
class Artikel{ public: float Preis; string Name; string Art; int Verfuegbar; Artikel(string aName, float aPreis, string aArt, int aVerfuegbar); ~Artikel(); Artikel::Artikel(string aName, float aPreis, string aArt, int aVerfuegbar){ Name = aName; Preis = aPreis; Art = aArt; Verfuegbar = aVerfuegbar; } Artikel::~Artikel(){ } int main(){ Artikel Artikel1("Artikel1", 49.99, "Buch", 1); Artikel Artikel2("Artikel2", 9.99, "DVD", 1); Artikel Artikel3("Artikel3", 19.99, "Spiel", 1); Artikel Artikel4("Artikel4", 29.99, "DVD", 0); int Artikel[4] = {1, 2, 3, 4}; for(int i = 1; i < 4; i++){ cout << "Name: " << Artikel[i].Name << endl; cout << "Preis: " << Artikel[i].Preis << endl; cout << "Art: " << Artikel[i].Art << endl; cout << "Verfuegbar: " << Artikel[i].Verfuegbar << endl << endl; } }
-
1. Benutze statt den "code" die "cpp"-Tags
2. Lies auch was wir schreibenclass Artikel{ //... // Wir benötigen in diesem Fall einen Standardkonstruktor (kein parameter, // oder alles Defaultinitialisiert). Artikel( string const & Name = "", // Objekte sollte man in der Regel als konstante // Referenz übergeben. float Preis = 0.0, string const & Art = "", int Verfuegbar = 0); //... Artikel::Artikel( string const & Name, float Preis, string const & Art, int Verfuegbar) : Name(Name), // Initialisierungsliste ist besser als nachträgliche Preis(Preis), // Zuweisung Art(Art), Verfuegbar(Verfuegbar) { } //... int main() { Artikel artikel[4]; artikel[0].Name = "Artikel1"; artikel[0].Preis = 49.99; artikel[0].Art = "Buch"; artikel[0].Verfuegbar= 1; // dies nun auch für artikel[1], artikel[2] und artikel[3] // Arrays beginnen mit Index 0!!! for(int i=0; i<4; ++i) { cout << "Name: " << artikel[i].Name << endl; cout << "Preis: " << artikel[i].Preis << endl; cout << "Art: " << artikel[i].Art << endl; cout << "Verfuegbar: " << artikel[i].Verfuegbar << endl << endl; } }
-
Alles klar, danke