Hallo ich bin es mal wieder

Meine Probleme heute?

1) Wenn ich eine integer Variable erstelle die durch "cin >> var;" eingegeben werden soll, ich allerdings einen Buchstaben eingebe führt das bei mir unweigerlich zu totalem Chaos!
Was mich dabei wundert ist das ich eine Schleife verwende die so lange läuft bis die eingegebene Zahl zwischen 1 und 7 liegt, und über if ausgibt das nur Zahlen von 1-7 eingegeben werden sollen.
Solange ich eine zu hohe/niedrige Zahl eingebe funktioniert das wunderbar, wird in einer integer Variable ein Zeichen nicht einfach als ASCII Zahl des entsprechenden Zeichens gespeichert?
Statt aber wie gewünscht zu funktionieren wird endlos "Bitte nur 1-7 eingeben!" ausgegeben.

Hier mal Quellcode:
Code:
int eingabe=0;
        while(eingabe<1 || eingabe>7)
        {
        cin >> eingabe;
        if(eingabe<1 || eingabe>7)
            cout << "Bitte nur 1-7 eingeben!" << endl;
        };
2) Mein Programm soll alle X Sekunden etwas tun. Dies habe ich durch "Sleep(X);" in einer Schleife realisieren können. Wie kann ich aber nun eine weitere Schleife gleichzeitig laufen lassen, die alle Y Sekunden etwas anderes tut? Oder lässt sich das ganze in einer Schleife realisieren? Die beiden Sekunden angaben sollen nämlich frei wählbar sein.

Freue mich auf hilfreiche Antworten (hoffentlich wieder von BB, unserem zynischen C Guru ),

B4n4n4