2016-11-01 40 views
0

how to execute code after yylex(); command如何在CMD WIN7執行時結束法輸入

我有同樣的問題,因爲上面的問題,不能夠在函數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? 
    } 

我在WIN7下面執行什麼並且答案說使用Ctrl + d結束您的輸入(嘗試在CMD中不起作用)。

那麼如何結束你的輸入,使下一個語句執行?

回答

1

那麼如何結束你的輸入,使下一個語句執行?

yylex()將繼續等待和過程的輸入,直到它看到文件結束,它執行執行明確return的動作。

Ctrl + D id Ctrl + Z的Windows模擬,所以你可以試試,但是用一個使其返回的規則來配置詞法分析器要好得多。例如,如果您只需要輸入一行(每次調用),那麼您可能會在它讀取換行符時返回。但請注意,yylex()可能會緩衝輸入字符,如果您在yylex()返回後嘗試讀取同一個輸入文件,可能會導致某些未處理的輸入丟失,除非再次調用yylex()本身。

相關問題