Ik ben c++ aan het leren en heb een vraag:

Status
Niet open voor verdere reacties.

stienoo

Gebruiker
Lid geworden
31 dec 2007
Berichten
315
Ik ben net begonnen met c++ te leren (ik heb het al eens gedaan maar toen is er iets tussen gekomen) mijn vraag is als volgd:

Ik ben bezig met if en else en wil maken dat je je leeftijd invult en dat je dan ziet of je leeftijd ouder of jonger dan 4 is.
Hier is de code:
Code:
#include <iostream.h>

using namespace std;

char age;

int main(){
    cout <<"Vul je leeftijd in";
    cin >> age;
  cout <<"age= ";
  cout << age;
  if(age > 4){
    cout<<"Je bent ouder dan 4\n";
  } else {
    cout<<"Je bent jonger of even oud als 4\n";
  }

  system ("pause");
  cin.get();
}

(sory voor het niet zo netjes maken van de lay-out)

Het probleem is dus dat hij altijd zegt dat age groter is dan 4 terwijl age soms 1 is.

Wat doe ik verkeerd (en wat kan ik mischien beter doen los van de fout die ik maak?) Ik zou het graag weten.
 
Je hebt age als char gedeclareerd, die wordt dus ook als char ingelezen.
Als je het karakter '1' invult heeft dat de ascii-waarde 49. (En dat is groter als 4 :P)
http://www.asciitable.com/

Code:
#include <iostream> // gebruik <iostream> voor C++ en niet <iostream.h>

using namespace std;

int main()
{
  int age; // int
  
  cout << "Vul je leeftijd in: ";
  cin >> age;
  cout << "age = " << age << endl;
  if(age > 4) {
    cout << "Je bent ouder dan 4\n";
  } else {
    cout<< "Je bent jonger of even oud als 4\n";
  }
  
  // als je al system("pause") gebruikt om de window open te houden,
  // heb je geen cin.get() meer nodig
  system("pause");
  
  // deze main functie returnt een int, 0 betekent succesvol afgerond
  return 0;
}
 
Laatst bewerkt:
Code:
int main()
{
  int l;
  cout << "uw leeftijd: ";
  cin >> l;
  if(l > 4)
    // bericht
  else
    // bericht
  return 0;
}

edit: te laat.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan