在C++中,讀取用戶輸入時可能會發生錯誤,例如輸入格式不正確或輸入文件不存在等。處理這些錯誤通常需要使用異常處理機制。以下是使用try-catch塊來處理C++ readline函數中的錯誤的示例:
#include <iostream>
#include <string>
#include <stdexcept>
int main() {
std::string input;
try {
std::cout << "Enter a number: ";
std::getline(std::cin, input);
// Convert string to integer
int num = std::stoi(input);
std::cout << "You entered: " << num << std::endl;
} catch (const std::invalid_argument& e) {
std::cerr << "Invalid input: " << e.what() << std::endl;
} catch (const std::out_of_range& e) {
std::cerr << "Out of range: " << e.what() << std::endl;
} catch (...) {
std::cerr << "An error occurred" << std::endl;
}
return 0;
}
在上面的示例中,我們嘗試將用戶輸入的字符串轉換為整數。如果輸入不是有效的整數,將會拋出std::invalid_argument
異常。如果輸入的值超出了整數范圍,將會拋出std::out_of_range
異常。最后的catch塊用于捕獲其他類型的異常。
通過使用try-catch塊,我們可以更加靈活地處理C++ readline函數中可能出現的錯誤,確保程序能夠正常運行并友好地向用戶提示錯誤信息。