VScodeC语言跑不起来

该代码效果是输入一串小于80个的英文字符和数字字符,分别得出两种字符的个数,并将两种字符分别输出,请问各位大佬,该代码有什么漏洞吗,不知为何就是跑不起来

#include<cstdio>
#include<ctype.h>
using namespace std;

int main(int argc, char const* argv[])
{
    const int size = 80;
    int char_num = 0, digit_num = 0;
    char arr[size] = "";/* 字符串用'\0'表示结尾 */
    for (int i = 0;i < size;i++) {
        char c = getchar();
        /*  if (c == '*')
             break;//一般选择EOF作为输入结束标志 */
        if (c == EOF)
            break;

        /*  if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z') */
        if (isalpha(c))//ctype.h库函数,验证是否为英文字符
            ++char_num;
        /* if (c >= '0' && c <= '9') */
        if (isdigit(c))//验证是否为数字
            ++digit_num;
        arr[i] = c;
    }
    printf("英文字符%d,数字字符%d\n", char_num, digit_num);
    for (int i = 0;i < size && arr[i] != '\0';i++)
        if (isalpha(arr[i]))
            putchar(arr[i]);
    putchar('\n');
    for (int i = 0;i < size && arr[i] != '\0';i++)
        if (isdigit(arr[i]))
            putchar(arr[i]);
    putchar('\n');

    return 0;
}

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^