Zabezpieczenie przed wpisaniem czegoś innego niż cyfra

Zabezpieczenie przed wpisaniem czegoś innego niż cyfra
M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

Witam forumowicze!!!
Piszę prościutki kod wykorzystujący pętlę do...while i mam problem. Kod wygląda następująco:

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
int zmienna;
do
{

	cout << "podaj liczbe " << endl;
	cin >> zmienna;
            

} while (cin.fail());

system("pause");

return 0;

}

chodzi mi o zabezpieczenie przed wpisaniem czegoś innego niż cyfra... gdy wpiszę coś innego niż cyfra program ma jeszcze raz poprosić o podanie liczby... niestety nie działa to. Jaki może być powód? Co zmienić w kodzie aby mój pomysł zadziałał?
Z góry dziękuję za pomoc

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
RE
  • Rejestracja: dni
  • Ostatnio: dni
0

pewnie to że nie wiesz czym jest ascii albo znak? Jak byś chciał reprezentować dane w pamięci komputera? Za pomocą bitów. Nie ty pierwszy wyśniłeś taki program. Rozwiązań znajdziesz więcej niż jedno ale ja przewrotnie podrzucę taki o to link. Ale poszukaj czegoś lepszego.

M1
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 2
0

a jak zrobić to na pętli do...while? żebym mógł wczytywać w pętli tą liczbę, a nie tylko czyścić strumień

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.