Ввод Ctrl + Z дважды против одного раза - PullRequest
0 голосов
/ 20 апреля 2020

Кстати, я использую Windows и IDE CodeBlocks.

Если мой код был (имеет пробел перед спецификатором %d):

    #include <stdio.h>

int main(void)
{
    int num;
    printf("Enter a number you want to check is present: ");

       while(scanf(" %d",&num)==EOF) // As long as wrong input is present on buffer
       {
          printf("Please enter valid input...\n");
          //clear the input buffer
       }
    return 0;
}

У меня есть необходимо набрать Ctrl+Z дважды (один раз в каждой строке, не обязательно находиться в начале строки) для запуска дела while(scanf(" %d",&num)==EOF).

Принимая во внимание, что если мой код был: Если мой код был (без пробела до спецификатора %d):

    #include <stdio.h>

int main(void)
{
    int num;
    printf("Enter a number you want to check is present: ");

       while(scanf("%d",&num)==EOF) // As long as wrong input is present on buffer
       {
          printf("Please enter valid input...\n");
          //clear the input buffer
       }
    return 0;
}

Мне нужно один раз набрать Ctrl+Z, чтобы запустить while(scanf("%d",&num)==EOF).

Итак, есть 2 части в этом вопросе:

1) Почему мне нужно дважды нажать Ctrl+Z для первого примера? Я попытался сослаться на { ссылка }, но это было для UNIX и немного сбило меня с толку

2) Почему пробел перед спецификатором %d даже вызывает такое расхождение так как это не должно иметь значения, если только это %n, %c или %[...] (я получил это от { ссылка })?

ПРИМЕЧАНИЕ: если я должен опубликовать эти 2 разделяйте как 2 вопроса, пожалуйста, оставьте комментарий.

Обновление : я пробовал это в приглашении cmd с g cc (мой первый раз в приглашении cmd), та же проблема сохраняется

...