getchar
函數(shù)在讀取輸入時可能會遇到異常情況,例如輸入流關(guān)閉、輸入錯誤等。為了處理這些異常,可以使用 try-catch
語句(C++)或 try-except
語句(Python)。
下面是使用 C++ 處理 getchar
輸入異常的示例:
#include <iostream>
#include <limits>
int main() {
int ch;
std::cout << "請輸入一個字符: ";
try {
ch = getchar();
if (ch == EOF) {
throw std::runtime_error("輸入流關(guān)閉");
}
std::cout << "你輸入的字符是: " << ch << std::endl;
} catch (const std::runtime_error& e) {
std::cerr << "發(fā)生異常: " << e.what() << std::endl;
}
return 0;
}
在這個示例中,我們使用 try
塊包裹 getchar()
函數(shù)調(diào)用。如果 getchar()
返回 EOF
,我們拋出一個 std::runtime_error
異常。在 catch
塊中,我們捕獲這個異常并輸出異常信息。
下面是使用 Python 處理 getchar
輸入異常的示例:
try:
ch = input("請輸入一個字符: ")
if ch == "":
raise EOFError("輸入流關(guān)閉")
print(f"你輸入的字符是: {ch}")
except EOFError as e:
print(f"發(fā)生異常: {e}")
在這個示例中,我們同樣使用 try
塊包裹 input()
函數(shù)調(diào)用。如果用戶直接按下回車鍵,input()
函數(shù)將返回空字符串。我們拋出一個 EOFError
異常并在 except
塊中捕獲它。