在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函数中可能出现的错误,确保程序能够正常运行并友好地向用户提示错误信息。