用isalpha函数出现的问题

代码是下面这样

#include <iostream>

using namespace std;

int main(void)
{
    int num_1, num_2;
    cout << "第一题作业:\n";
    cout << "请输入你要除以的数值: ";
    cin >> num_1;
    cout << "再输入一个数值用于被除;";
    cin >> num_2;
    cout << num_1 << " 除以 " << num_2 << " 等于" << num_1 / num_2 << ",余" << num_1 % num_2 << endl;
    cout << "第二题作业:\n";
    char yinbiao;
    cout << "输入一个字母来判定元音还是辅音:";
    cin >> yinbiao;
    while (!isalpha(yinbiao))
    {
        cout << "输入错误 请重新输入!\n";
        cout << "输入一个字母来判定元音还是辅音:";
        cin >> yinbiao;
    }
    if (yinbiao == 'a' || yinbiao == 'e' || yinbiao == 'i' || yinbiao == 'o' || yinbiao == 'u' || yinbiao == 'A' || yinbiao == 'E' || yinbiao == 'I' || yinbiao == 'O' || yinbiao == 'U')
        cout << "你输入的是元音\n";
    else
        cout << "你输入的是辅音\n";
    return 0;
    问题主要出现isalpha函数那里 如果我在第一题里输入非数字或者在第二题里输入中文就会报错

这是什么原因呢? 该怎么解决?

这个是数据类型转换的问题,你第一题定义了整型变量,肯定只能输入整数啊,第二题定义char类型变量,只能接受字符,一个中文是占两个字节的,是字符串。

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632