cin.get()

Status
Niet open voor verdere reacties.

Niellles

Gebruiker
Lid geworden
21 jun 2008
Berichten
194
Beste allemaal,

Ik ben net begonnen met het leren van C++.
En loop tegen het volgende probleem op.
Code:
#include <iostream.h>

int main()
{
          cout << "Hoi" << endl;
          cout << "Druk op enter om af te sluiten." << endl;
          cin.get();
          return 0;
}

Ik krijg dit te zien
Hoi
Druk op enter om af te sluiten.
Als ik dan op enter druk sluit het "programma" af, zoals je mag verwachten.

Code:
#include <iostream.h>

int main()
{
          int x;
          int y;
          cout << "Hoi" << endl;
          cout << "Je gaat twee cijfers optellen, wat is het eerste cijfer?" << endl;
          cin >> x;
          cout << "Wat is het tweede getal?" << endl;
          cin >> y;
          cout << "Het totaal is " << x+y << endl;
          cin.get();
          return 0;
}

Als ik dan dit doe, werkt alles goed... Je geeft het eerste getal op dan het tweede. Dan sluit het snel af. (Als ik cin.get() even vervang door cin >> x; werkt alles wel goed. En wordt er pas afgesloten als ik een waarde opgeef... Wat doe ik fout?
 
probeer eens cin.flush() boven je cin.get() te zetten, ik denk dat de enter in je invoerbuffer blijft staan
 
13 C:\Documents and Settings\All Users\Documenten\Niels\Naamloos1.cpp 'struct std::istream' has no member named 'flush'

Code:
#include <iostream.h>

int main()
{
          int x;
          int y;
          cout << "Hoi" << endl;
          cout << "Je gaat twee cijfers optellen, wat is het eerste cijfer?" << endl;
          cin >> x;
          cout << "Wat is het tweede getal?" << endl;
          cin >> y;
          cout << "Het totaal is " << x+y << endl;
          cin.flush();
          cin.get();

          return 0;
}
 
dit werkt
Code:
#include <iostream>
#include <string>
using namespace std;

void clearBuffer();

int main()
{
          int x;
          int y;
          cout << "Hoi" << endl;
          cout << "Je gaat twee cijfers optellen, wat is het eerste cijfer?" << endl;
          cin >> x;
          cout << "Wat is het tweede getal?" << endl;
          cin >> y;
          cout << "Het totaal is " << x+y << endl;

          clearBuffer();
          cin.get();
          return 0;
}

void clearBuffer(){
    string tmp;
    getline( cin, tmp );
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan