我試圖驗證輸入到雙變量的字符是正確的數據類型。循環錯誤試圖驗證有效輸入在C++中加倍
double number = 0;
int validCheck = 0;
char another = 'y';
while(another == 'y')
{
cout<<"Please enter a number: ";
validCheck = scanf("%lf", &number);
while (validCheck !=1)
{
cout<<"Invalid input, please enter a number: ";
validCheck = scanf("%lf", &number);
}
當我編譯此,它工作正常提供我給出一個有效的輸入和無效的輸入並把它放到while循環,而不是檢查另一個輸入,它只是修建垃圾我的控制檯「無效輸入,請輸入一個數字:「甚至不需要新的輸入。我錯過了什麼?
嘗試在while()之後插入以下內容:fflush(stdin); – FacundoGFlores
這真是一個C問題。一些cout語句不會使它成爲C++。 facunvd是正確的,你必須刷新輸入。 –
@facunvd - 在stdin上做一個fflush是未定義的。作爲解決方案提供這是一個可怕的建議。參見C FAQ的12.26a。 –