📜  在 C++ 中获取整数输入(1)

📅  最后修改于: 2023-12-03 15:23:07.511000             🧑  作者: Mango

在 C++ 中获取整数输入

在 C++ 中获取整数输入通常使用 cin,如果输入错误可能会导致程序崩溃或者出现意外的结果。因此,需要注意错误处理的方法。

获取整数输入

使用cin获取整数输入有两种方法。

方法一

使用 cin 直接获取用户输入的整数:

int x;
cin >> x;

但如果用户输入的是字符或其他非整数类型的数据,则会导致错误。

方法二

使用 getline 函数读取一行用户输入,再使用 stringstream 将字符串转换为整数:

#include <iostream>
#include <sstream>
using namespace std;

int main() {
    string s;
    getline(cin, s);
    stringstream ss(s);
    int x;
    ss >> x;
    return 0;
}

在这种方法中,getline 函数可以接收用户输入的整数,也可以接收包含多个整数的一行输入,之后将其转化为 stringstream 类型的变量,这样就可以使用 >> 操作符将字符串转化为整数了。

错误处理

如果用户在输入时出现错误,则需要采取适当的错误处理措施以避免程序崩溃。以下是一种错误处理的方法:

#include <iostream>
#include <string>
using namespace std;

int main() {
    int x;
    string s;
    while (true) {
        getline(cin, s);
        stringstream ss(s);
        if (ss >> x) break;
        cout << "Invalid input. Please try again." << endl;
    }
    cout << "x = " << x << endl;
    return 0;
}

在这种方法中,如果用户输入的不是整数,将跳过错误的输入并显示“无效输入。请重试”等错误提示。只有在用户输入正确的整数时,程序才会继续执行并输出结果。

结论

在 C++ 中获取整数输入时,需要注意错误处理的方法。可以使用 cin 直接读取整数输入,但这种方法会忽略错误输入并导致不良结果。因此,我们推荐使用 getlinestringstream 的组合来获取整数输入,同时采用适当的错误处理方法,以保证程序的正确性和稳定性。