Array mit Int und String Werten ausgeben
-
die Werte des Arrays irgendwie auszugeben
Als gibt kein irgendwie. Wenn du keine Funktion schreibst gibt es keine Ausgabe.
-
@NoobHunter12 sagte in Array mit Int und String Werten ausgeben:
Das hatten wir schon in der letzten Aufgabe. Da habe ich es so hinbekommen.
Das ist eine Zufallszahl auf stdout (Konsole) ausgegeben.
Damit hast du aber nicht die Seriennummer bei vehicle gesetzt .
-
@NoobHunter12 sagte in Array mit Int und String Werten ausgeben:
@manni66
Nirgends, verzweifel ja schon daran die Werte des Arrays irgendwie auszugeben daher habe ich nichtmal versucht sie entsprechend anzuordnen
Verstehe ich nicht
Du hast das doch hier schon gemacht:
https://www.c-plusplus.net/forum/topic/351130/if-else-exit/78Und was sagt Dein Nachhilfelehrer, weiß der etwa auch nicht weiter?
-
Ist krank
Und was hat das mit dem Projekt davor zu tun? sehe dort nirgends ein Array
-
@NoobHunter12
Du hast doch dort eine Funktion zur Ausgabe eines Vehicles ...
Die rufst Du nun für Deine Arrayeinträge nacheinander auf.Ich schätze doch mal, dass das alles sowieso irgendwie zusammenhängt?
-
@Belli
ja richtig. die aufgaben bauen aufeinander auf bzw wird das programm immer erweitert
-
@NoobHunter12
Also hat es doch was mit dem Projekt davor zu tun ...
Und da ist auch ein Array von Vehicle drin, Zeile 110 ff.:int main() { Vehicle fahrzeug[maxVehicles];//Array
Da gibt es doch auf Zeile 117 auch schon:
for(size_t i{0}; i < anzahl; ++i) { writeVehicle(fahrzeug[i]); // Ausgabe der eingegebenen Fahrzeuge. i=1 -> 2tes Fahrzeug der Arrayliste ausgeben };
-
Hatten gerade Tutorium, habe jetzt eine Funktion die mir auch das ausgibt was ich haben wollte. Ein ganz kleines Logikproblem habe ich noch.
void Vehicle::writeVehicleY() { int j=1; { cout << "Fahrzeug" << j << endl; cout << "Hersteller: " << manufacturer << endl; cout << "Model " << model << endl; cout << "Gewicht: " << weight << endl; cout << "Leistung: " << power << endl; cout << "Türen: " << numDoors << endl; cout << "\n\n"; j++; } }
Das ist die Funktion.
Wenn jetzt in der Main die Funktion per for Bedingung 6 mal aufgerufen wird (was auch tatsächlich funktioniert) hätte ich noch gerne dass für hochgezählt wird.
Also:
Fahrzeug1:
...
Fahrzeug2:
....
uswIch weiß, die Lösung ist ein Logikproblem aber ich komme einfach nicht dahinter.
Wenn ich um die Funktion auch nochmal for (j=0; j<6;j++;) packe gibt er mir jedes Fahrzeug 6 mal aus..
-
Also...
- Du hast eine Funktion, die dir ein Fahrzeug ausgibt.
- Du hast eine for-Schleife, über die Liste der Fahrzeuge läufst.
Gib die Nummer des Eintrags nicht in der Ausgabefunktion, sondern in der for-Schleife aus.
for( size_t i = 0; i < AnzahlFahrzeuge; ++i ) { // gib Nummer aus ... // gib Fahrzeugdaten aus ... }
Ist doch klar, dass jedes Fahrzeug 6x ausgegeben wird, wenn du statt eines Fahrzeugs jedes Mal alle ausgibst.
-
void Vehicle::writeVehicleY(size_t nr) { cout << "Fahrzeug: " << nr << endl; cout << "Hersteller: " << manufacturer << endl; cout << "Model " << model << endl; cout << "Gewicht: " << weight << endl; cout << "Leistung: " << power << endl; cout << "Türen: " << numDoors << endl; cout << "\n\n"; }
und beim Aufruf die Nummer mitgeben ...
-
Aber irgendwie ist das schlecht ... Du hast ja jetzt die Ausgabe als Klassenmethode ... da würde ich die Nummer nicht mit ausgeben ... dann lieber
cout << "Fahrzeug: " << nr;
in der Schleife, jeweils vor dem Methodenaufruf, und die Methode gibt dann wirklich nur die Vehicle - Daten aus ... dann sollte sie auch besser wieder ohne Parameter definiert werden ...
Also, wenn die Klasse ihre Daten via Methode selbst ausgibt, gehört die Ausgabe der Nummer auf keinen Fall in die Methode, es sei denn, die Klasse verwaltet auch die Anzahl der vorhandenen Fahrzeuge - dann müsstest Du eine statische Variable mit der Anzahl in der Klasse haben.
-
ok danke
Noch eine Frage..
Ich habe ja in der Main eine Zufallszahl generiert. Wie kann ich die an meine Funktion übergeben, sodass jedes Fahrzeug eine Seriennumer als "Zufallszahl" erhält?
-
Warum machst Du das nicht direkt bei Erstellung eines Fahrzeugs?
-
@Belli
Wenn ich meine Variable für die Zufallszahl an entsprechende Stellen im Array setze gibt er mir einen Fehler aus..(iwas von cant int to const char*...)Liegt bestimmt an der Klasse bzw dem Konstruktor aber mein Programm ist inzwischen so unübersichtlich für mich geworden dass ich jetzt nicht nach dem Fehler suchen kann. Muss um 12 uhr abgegeben haben
Aber danke für den Hinweis. Auf die Idee wär ich nicht gekommen!
-
@NoobHunter12 sagte in Array mit Int und String Werten ausgeben:
iwas
Kompletten bis auf den Fehler kompilierbaren Code und komplette Fehlermeldung zeigen.
-
@NoobHunter12 sagte in Array mit Int und String Werten ausgeben:
@Belli
Wenn ich meine Variable für die Zufallszahl an entsprechende Stellen im Array setze gibt er mir einen Fehler aus..(iwas von cant int to const char*...)Klingt, als wenn Deine Seriennr. in der Klasse vom Typ
const char *
wäre, und die Seriennr. die Du zuweisen willst, vom Typ
int
Das ist jetzt nur geraten, aber wenn es so ist, dann sind die Typen ja auch inkompatibel.
-
Du wirst Recht haben.
Habe alles nochmal gelöscht und den Zufallszahlgenerier mit in die Funktion gepackt.
Jetzt läuft es so wie es soll.
Erneut danke für deine Beiträge.
Gebe das Programm jetzt ab