variabel naam / nummering

Status
Niet open voor verdere reacties.

marten1984

Gebruiker
Lid geworden
3 feb 2008
Berichten
10
Hallo,

Ik heb diverse structs met de namen een, twee, drie etc. maar nu moet ik deze vaak in een loop (do while loop) gebruiken. Nu moet je dus een.kleur, twee.kleur en drie.kleur etc elke keer dus invoeren is het ook mogelijk om dit aan een soort van teller te binden dus bv

int teller

teller.kleur


in plaats van


een.kleur
twee.kleur
drie.kleur


In dit geval scheelt het 1/3 code, maar bij mij zal dit nog veel meer zijn!

Wie kan mij helpen? alvast enorm bedankt!
 
Laatst bewerkt:
Je zou een array kunnen maken:

Code:
object objecten[AANTAL_OBJECTEN];

for (int i = 0; i < AANTAL_OBJECTEN; i++) {
    std::cin >> objecten[i].kleur;
}
 
Of als je er nog meer variabelen aan toe wil kennen.. bijv. kleur, lengte, breedte
Dan zou je een Class kunnen maken.
 
class

jah ik denk dat class (wat dan ook maar is) beter is, heb het al met array geprobeerd maar dat is ook erg veel code..

zou je een uitlegje willen geven??

Begin ook al met googelen........

Bedankt!!
 
bedankt

Bedankt, engels is geen probleem...

Zal nu wel lukken denk ik, anders horen jullie het wel;)
 
Of als je er nog meer variabelen aan toe wil kennen.. bijv. kleur, lengte, breedte
Dan zou je een Class kunnen maken.

Je hebt daar niet per se een class voor nodig. Met structs (waarvan hij zei dat hij die al had) kan dat net zo goed ^^.

marten1984 zei:
jah ik denk dat class (wat dan ook maar is) beter is, heb het al met array geprobeerd maar dat is ook erg veel code..

Hoe bedoel je veel code? Op deze manier kun je oneindig (niet echt oneindig, maar wel heel veel) veel objecten inlezen in een paar regels.

Code:
typedef struct object {
    int kleur, lengte breedte;
};

const int AANTAL_OBJECTEN = 100000;

object objecten[AANTAL_OBJECTEN];

for (int i = 0; i < AANTAL_OBJECTEN; ++i) {
    std::cin >> objecten[i].kleur;
    std::cin >> objecten[i].lengte;
    std::cin >> objecten[i].breedte;
}

Maar misschien begrijp ik verkeerd wat je precies wilt doen ^^.
 
class

Wat ik wil doen is:

Kleur van toyota toekennen dan bouwjaar van toyota toekennen dan kleur mercedes dan bouwjaar mercedes etc. Het moet precies in deze volgorde...

Heb tien verschillende merknamen, met 3 eigenschappen

Probeer het nu weer met een class, maar het vlot nog niet zo......
 
var + var

Is er ook een manier te zeggen van bv.

char buffer[10];
int i;

i=1;

toyota.kleur1 ==getchar(buffer);

dan in plaats van dat:

toyota.kleur + i = getchar (buffer);
?

dus dat het nummer als waarde in een variabele gestopt wordt?
 
Wil je een auto meerdere kleuren laten hebben dan?

Dan kun je van kleuren ook weer een array maken:
typedef struct Auto {
std::string kleuren[AANTAL_KLEUREN];
}

char buffer[10];
int i;
i=1;

toyota.kleur1 ==getchar(buffer);

dan in plaats van dat:

toyota.kleur + i = getchar (buffer);

Nee dat gaat niet werken ^^.

Misschien heb je iets aan wat voorbeeld code, ik heb geprobeerd te maken wat jij ongeveer beschreef :P:
Code:
#include <iostream>
#include <string>

typedef struct Auto {
    std::string merk;
    std::string kleur;
    int         bouwjaar;
};

int main() {
    const int AANTAL_AUTOS = 10;
    Auto autos[AANTAL_AUTOS];
    
    for (int i = 0; i < AANTAL_AUTOS; ++i) {
        std::cout << "Voer merk in: ";
        std::cin >> autos[i].merk;
        std::cout << "Voer kleur in: ";
        std::cin >> autos[i].kleur;
        std::cout << "Voer bouwjaar in: ";
        std::cin >> autos[i].bouwjaar;
    }
    
    return 0;
}

killermenace zei:
Ik zeg ook het kan
Alles kan eigenlijk wel op meerdere manieren in elkaar gezet worden

Dat is waar ^^.
 
Wat ik wil doen is:

Kleur van toyota toekennen dan bouwjaar van toyota toekennen dan kleur mercedes dan bouwjaar mercedes etc. Het moet precies in deze volgorde...

Heb tien verschillende merknamen, met 3 eigenschappen

Probeer het nu weer met een class, maar het vlot nog niet zo......

In jouw geval zou je een base klasse kunnen gebruiken en daar elk merk van afleiden. Dan zou je in de constructor van elke afgeleide klasse het merk kunnen definiëren. (dan zou je het kunnen gebruiken zoals je het nu zegt, en met redelijk korte code kun je dan een nieuw merk aanmaken.)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan