diff --git a/stream_management.cpp b/stream_management.cpp index c7486ba..ec17813 100644 --- a/stream_management.cpp +++ b/stream_management.cpp @@ -18,6 +18,7 @@ public: if (is && s.age >= 20 && s.age <= 60) break; is.clear(0); + clearerr(stdin); // 遇到ctrl+z或ctrl+d等情况下,clear并不能直接修复流,需要使用clearerr is.ignore(std::numeric_limits::max(), '\n'); } is.ignore(std::numeric_limits::max(), '\n'); // 清除之前遗漏的多余字符和回车