このプログラムは、入力された数値が整数かどうかをチェックする必要があります。文字列では問題なく機能しますが、double では機能しません。
int test;
cout << "Enter the number:" << endl;
while(true) {
cin >> test;
if (!cin || test < 0) {
cout << "Wrong input, enter the number again:" << endl;
cin.clear();
cin.ignore(numeric_limits<streamsize>::max(), '\n');
}