vs2013 c primer plus 例题 error C2143: 语法错误 :

想确认输入的是数字,结果报错
图片说明

 #include <stdio.h>
#include <stdlib.h>

int get_int(void);

int main(void)
{

    int start;
    start = get_int();

    int get_int(void)
    {
        int input;
        char ch;

        while (scanf("%d", &input) == 1)
        {
            while ((ch = getchar()) != '\n')
                putchar(ch);//剔除错误的输入
            printf("is not an integer.\nPlease  enter an\ninteger value,such as 25,178or 3;");
        }
        return input;
    }
    system("pause");
}

start = get_int();写在实现的下面

int get_int(void)
{
int input;
char ch;

    while (scanf("%d", &input) == 1)
    {
        while ((ch = getchar()) != '\n')
            putchar(ch);//剔除错误的输入
        printf("is not an integer.\nPlease  enter an\ninteger value,such as 25,178or 3;");
    }
    return input;
}
     start = get_int();

函数不能嵌套定义。这里嵌套定义在main()函数中

c++不能直接内部套函数,除非用lamda或者std function

c++不允许内部套函数。。