將cin 設為只讀數字
使用cin 強制進行數位輸入可能會帶來挑戰,尤其是在處理混合輸入類型時。本文研究了一種解決方案,以確保 cin 只接受數字值。
在提供的程式碼中,while 迴圈嘗試透過忽略非數字字元來修正無效輸入。然而,這種方法在處理多個輸入時面臨限制。
解決方案:使用std::getline 和std::string
要克服這個障礙,我們可以使用更全面的方法:
使用 std::stringstream: 將字串轉換為雙精確型🎜>
驗證轉換:
#include <sstream> #include <string> int main() { std::string line; double d; while (std::getline(std::cin, line)) { std::stringstream ss(line); if (ss >> d) { if (ss.eof()) { // Success break; } } std::cout << "Error!" << std::endl; } std::cout << "Finally: " << d << std::endl; }此解可確保正確處理整數和浮點數,非數字字元完全丟棄。
以上是如何讓 C 中的 cin 只接受數位輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!