2015-12-07 84 views
-1

試圖讓一個函數工作,但我仍然是在編碼初學者 - 這個函數是清除我所有的輸入作爲有效但是,據我瞭解,它應該是失敗他們?Char驗證C++

char input; 
bool valid; 

do 
{ 
    valid = false; 
    gotoXY(col, row); 
    cin >> input; 

    if (cin.fail()) 
    { 
     message("Invalid input! Please re-enter.", 5, offset); 
     cin.clear(); 
     clearLine(col, row); 
     clearLine(0, row + 2); 
    } 
    else 
    { 
     valid = true; 

    } 

    cin.ignore(150, '\n'); 

    clearLine2(5, offset); 
    clearLine2(5, offset + 2); 

} while (!valid); 

cin.setf(ios::skipws); 

return input; 

我根本無法找到一個解決方案,它真的造成了一些麻煩,任何幫助,將不勝感激!

+1

你期望你的代碼做什麼?這是什麼意思呢? –

+0

說如果我輸入1或一個字符串它應該導致一個失敗的消息,但是這只是接受一切 –

+0

你需要發佈[MCVE](http://stackoverflow.com/help/mcve) –

回答

0

至於我可以看到你的代碼說: 如果你的輸入會失敗(沒有去輸入)然後發送彩信。 否則接受一切。 對我來說,它看起來像你必須交換它們。