問題:
提供的代碼旨在防止非數字字符接受作為輸入。但是,它無法處理輸入在有效數字後包含字元的情況。
建議的解決方案:
要解決此問題,我們建議不同的方法使用 std::getline 和 std::string。
程式碼片段:
#include <string> #include <sstream> 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 流可靠地處理無效數字輸入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!