Permalänk
Medlem

basic c++ fråga

Tjena!

Jag sitter o gör ett litet "spel" och eftersom jag inte har hållt på med c++ länge så har jag fastnat med min
if-sats.

om jag skriver tex följande.
skriv ett tal mellan 1 och 5.
cin>>n
if(n>0 && n<=5)
{
(det kommer va kod här)
}
else
{
cout<<"You wrote a number outside the given interval"<<endl;
cout<<"Please try again."<<endl;
}

Så min fråga är, om jag vill att programmet ska låta användaren skriva in värdet på n igen och kolla om det är i intervall utan att upprepa samma kod igen dvs att den typ skickar tbx en till inmatningen av n.
Måste jag ha en for-loop för detta?

Permalänk
Medlem
Skrivet av Z3R0:

Tjena!

Jag sitter o gör ett litet "spel" och eftersom jag inte har hållt på med c++ länge så har jag fastnat med min
if-sats.

om jag skriver tex följande.
skriv ett tal mellan 1 och 5.
cin>>n
if(n>0 && n<=5)
{
(det kommer va kod här)
}
else
{
cout<<"You wrote a number outside the given interval"<<endl;
cout<<"Please try again."<<endl;
}

Så min fråga är, om jag vill att programmet ska låta användaren skriva in värdet på n igen och kolla om det är i intervall utan att upprepa samma kod igen dvs att den typ skickar tbx en till inmatningen av n.
Måste jag ha en for-loop för detta?

Kanske nåt i stil med:

int n=0; while(n<0 || n>5) { cout << "Skriv in ett tal mellan 1 och 5!" << endl; cin >> n; }

Visa signatur
Permalänk
Medlem
Permalänk
Medlem

Nytt problem jag stött på...

har detta i en for-loop.

cars[i].setModel();
cars[i].setLicence();

får slutparenteserna röda och det står. Error: too few arguments in function call.

ska jag ha nått mellan paranteserna? isf vad? :S

Permalänk
Medlem
Skrivet av Z3R0:

Nytt problem jag stött på...

har detta i en for-loop.

cars[i].setModel();
cars[i].setLicence();

får slutparenteserna röda och det står. Error: too few arguments in function call.

ska jag ha nått mellan paranteserna? isf vad? :S

Det låter som att det ska vara mer mellan paranteserna. Om du t ex har en funktion som är definerad som:

void minFunktion(double inVariabel){ <kod> }

Måste jag också kalla på den som:

double variabel; minFunktion(variabel);

Visa signatur
Permalänk
Medlem

Jag misstänkte det, men såhär ser min funktion ut..

void Car::setModel(string model)
{
this->model=model;
}
void Car::setLicence(string licence)
{
this->licence=licence;
}

så jag tänkte att jag då måste stoppa in string model mellan parenteserna men det hjälper mig inte...

Permalänk
Medlem
Skrivet av Z3R0:

Jag misstänkte det, men såhär ser min funktion ut..

void Car::setModel(string model)
{
this->model=model;
}
void Car::setLicence(string licence)
{
this->licence=licence;
}

så jag tänkte att jag då måste stoppa in string model mellan parenteserna men det hjälper mig inte...

"string model;" deklarerar en variabel av typen string. Funktionen vill ha in en string, mao kan du antingen deklarera en string och tilldela ett värde eller skriva det direkt i anropet t ex:

car[i].setModel("Volvo");

eller:

string model = "Volvo";
car[i].setModel(model);

Visa signatur
Permalänk
Medlem

Det vet jag men jag vill att användaren ska kunna mata in det under programkörningen.
typ.
Car 1: Volvo regnr: AAA111
car 2: BMW regnr: BBB222
car 3: Saab regnr: CCC333

Permalänk
Medlem
Skrivet av Z3R0:

Det vet jag men jag vill att användaren ska kunna mata in det under programkörningen.
typ.
Car 1: Volvo regnr: AAA111
car 2: BMW regnr: BBB222
car 3: Saab regnr: CCC333

Då bör du använda "cin" och "cout". Något i stil med:

string str; cout << "Skriv in modell för bil nr " << i << ":" << endl; cin >> str; car[i].setModel(str); cout << "Skriv in regnr för bil nr " << i << ":" << endl; cin >> str; car[i].setLicense(str);

i for-loopen.

Visa signatur
Permalänk
Medlem

Fan va nice!
Har försökt lösa detta i typ 2 timmar nu.

Tack som fan för hjälpen!

Permalänk
Medlem
Skrivet av MarcusW:

Kanske nåt i stil med:

int n=0; while(n<0 || n>5) { cout << "Skriv in ett tal mellan 1 och 5!" << endl; cin >> n; }

Inte för att det spelar någon jätteroll men, jag tycker att det här är ett klassiskt exempel på där do-while är bättre än en while eftersom man ALLTID kommer göra en inmatning och sedan testa argumentet.

int n=0; do { cout << "Skriv in ett tal mellan 1 och 5!" << endl; cin >> n; }while(n<0 || n>5);