Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在CMD win7上执行时如何结束lex中的输入_C_Lex - Fatal编程技术网

在CMD win7上执行时如何结束lex中的输入

在CMD win7上执行时如何结束lex中的输入,c,lex,C,Lex,我的问题与上面的问题相同,无法执行低于yylex()的任何操作 %{ #包括 int元音=0; int cons=0; %} %% “a”|“e”|“i”|“o”|“u”|“a”|“e”|“i”|“o”|“u”{printf(“是元音”);元音+++} [a-zA-z]{printf(“是辅音”);cons++;} %% int yywrap() { 返回1; } main() { printf(“输入字符串\n”); yylex(); printf(“元音=%d和辅音=%d”,元音,cons)

我的问题与上面的问题相同,无法执行低于yylex()的任何操作

%{
#包括
int元音=0;
int cons=0;
%}
%%
“a”|“e”|“i”|“o”|“u”|“a”|“e”|“i”|“o”|“u”{printf(“是元音”);元音+++}
[a-zA-z]{printf(“是辅音”);cons++;}
%%
int yywrap()
{
返回1;
}
main()
{
printf(“输入字符串\n”);
yylex();
printf(“元音=%d和辅音=%d”,元音,cons);//如何执行此语句?
}
我在win7上,答案是使用Ctrl+d结束输入(尝试在CMD中不起作用)

那么,如何结束使下一条语句能够执行的输入呢

那么,如何结束使下一条语句能够执行的输入呢

yylex()
将继续等待并处理输入,直到它看到文件结尾或执行执行显式
返回的操作

Windows类似于Ctrl+D id Ctrl+Z,所以您可以尝试一下,但是最好是使用一个规则来配置lexer,使其返回。例如,如果您只需要lex一行输入(每个调用),那么您可以在它读取换行符时使其返回。但是请注意,
yylex()
可能会缓冲输入字符,如果在
yylex()
返回后尝试读取相同的输入文件,则可能会导致一些未处理的输入丢失,除非再次调用
yylex()
本身

那么,如何结束使下一条语句能够执行的输入呢

yylex()
将继续等待并处理输入,直到它看到文件结尾或执行执行显式
返回的操作

Windows类似于Ctrl+D id Ctrl+Z,所以您可以尝试一下,但是最好是使用一个规则来配置lexer,使其返回。例如,如果您只需要lex一行输入(每个调用),那么您可以在它读取换行符时使其返回。但是请注意,
yylex()
可能会缓冲输入字符,如果在
yylex()
返回后尝试读取相同的输入文件,则可能会导致一些未处理的输入丢失,除非再次调用
yylex()
本身

    %{
       #include<stdio.h>
       int vowel=0;
       int cons=0;
    %}
    %%
   "a"|"e"|"i"|"o"|"u"|"A"|"E"|"I"|"O"|"U" {printf("is a VOWEL");vowel++;}
    [a-zA-z] {printf("Is a Consonant");cons++;}
    %%
  int yywrap()
  {
   return 1;
  }
  main()
  {
   printf("Enter String\n");
  yylex();
   printf("vowel=%d and Consonent=%d",vowel,cons);//how to execute this statement?
    }