Невозможно распечатать инструкции после yylex

#c #lex

#c #lex

Вопрос:

Я пытаюсь подсчитать общее количество символов верхнего и нижнего регистра в программе lex, и ввод выполняется вечно, не сталкиваясь с EOF в Windows. Моя первая программа на lex. Пожалуйста, помогите.

 #include<stdio.h>
    int Upper=0;
    int Lower=0;
%}
%%
[A-Z] {printf("Uppercaset");Upper  ;}
[a-z] {printf("Lowercaset");Lower  ;}

%%

int yywrap(void)
{
    return 1;
}

main()
{
    printf("Enter a stringn");
    yylex();
    printf("Uppercase=%d and Lowercase=%d",Upper,Lower);
    return 0;
} 
  

введите описание изображения здесь

Как вы можете видеть, я не могу распечатать верхний и нижний счетчики. Я что-то здесь упускаю?

Комментарии:

1. Вы нажимали только Enter клавишу или клавишу конца файла ( Ctrl-z в Windows)? Лексика будет остановлена только в конце файла.

2. @Someprogrammerdude Я пробовал ctrl z ctrl d, но они просто печатаются как ^ Z и так далее, но не встречаются как EOF

3. К сожалению, в Windows вам прежде всего нужно нажать Ctrl-z на новой строке, а во-вторых, вам может потребоваться также нажать Enter .