scanf_s读取字符我在做什么错?

时间:2019-10-07 16:13:40

标签: c windows

{

    printf("Please give a random positive number for X: \n");
    scanf_s("%i", &X);
    char ch = getchar();
    char Gender;
    if (isdigit)
    {
        printf("Hay um... sorry what my i call you?");
        scanf_s("%i", Gender);

        printf("%lf \n" Gender ", if you may, please reread what i said, i asked you to give me a RANDOM NUMBER. \ncan you please explain to me why you gave me out of 1 through infinite numbers, a random letter? \n \n ");
    };

我的问题是[“%lf \ n”性别]说它期望[]]有人可以解释我在做什么错吗?

1 个答案:

答案 0 :(得分:1)

这里有几个问题:

  1. scanf_s指向您要存储读取值的指针,因此它应为scanf_s("%i", &Gender);
  2. 在C语言中,您不能仅将char插入字符串中。我不确定您要从中获得什么,因为%lf是打印char的一种很奇怪的格式,但这就是我所假设的。在这种情况下,您需要将Gender移至末尾:printf("%lf \n...letter? \n \n", Gender);。这会将Gender插入%lf的位置。