在DevC ++中工作但在Visual Studio 2017中不起作用

时间:2017-12-30 14:01:16

标签: c visual-studio-2017

我遇到编译问题。我的代码在DevC ++中工作但在Visual Studio 2017中没有正确使用。在Vs-2017中,如果我只输入数字,那么它将起作用。但如果我输入字母,它会进入无限循环。其他编译器(如DevC ++)没有错误,那么为什么在我尝试在VS-2017中编译它时它没有完全运行。

以下是VS-2017中使用的完整代码,以便您可以复制粘贴以检入VS-2017。请建议。

#include "stdafx.h"
#include<stdio.h>


int main(void)
{
    int num[10];
    int i;

    printf("Enter 10 numbers: \n\n");

    for (i = 0; i <= 9; i++)
    {
        printf("Number %d =  ", i + 1);

        while (scanf_s("%d", &num[i]) != 1)
        {
           printf("Invalid number. Enter again.\n");

        // fprintf(stderr,"%s\n","Invalid number. Enter again");  // May also use this
        }

    }
}

1 个答案:

答案 0 :(得分:0)

您应输入一个字符(使用带有%c的scanf,而不是%d)。 通过这种方式,您的程序将期望查找任何字符,而不是数字。 那么你应该检查它是数字(0-9)还是字母(a-z,A-Z)。