我正在寫一個函數,它傳遞一個字符作爲第一個參數,一個整數作爲第二個參數。我需要同時驗證兩者。具體來說,字符必須在A和J之間(包括A和J),整數必須在1到10之間(包括1和10)。C++驗證字符範圍
我寫的一行是:
if (toupper(row) < 'A' || toupper(row) > 'J' || col < 1 || col > 10)
{
return 0;
}
else
{ ... rest of function ... }
但這不能正常工作。在我的書中,我讀到你可以和角色進行比較,因爲他們本身只是整數,但我無法弄清楚爲什麼不行。任何人都可以將我指向正確的方向嗎?
編輯,以解決一些意見
0是我們應該返回,如果輸入的是無效的數量。
這行代碼是由我的老師編寫的「測試驅動程序」進行評分的項目的一部分。測試驅動程序報告說,當輸入無效時(字符不在A或J之間,或者數字小於1或大於10),我的函數沒有返回正確的結果。
我組織了我的代碼,以便如果上面的語句是true,那麼它返回我們應該返回的代碼,否則它繼續與函數的其餘部分...所以我不明白爲什麼他的測試驅動程序告訴我,如果輸入無效,我不會返回代碼。另一個問題是他不讓我們看看測試驅動程序發送給我們的功能,所以我無法解決這個問題。
你的邏輯是倒置的,做一個桶滾! – nonsensickle
代碼看起來像正確檢測到無效字符。你爲什麼說它不能正常工作? –
你說過「......這工作不正常。」你打算做什麼,它在做什麼? – aldo