flex實現讀取檔案字元數

2021-09-26 03:18:16 字數 1115 閱讀 5272

以下程式是flex與bison教程中的程式

%option noyywrap%%%

[a-za-z]+

\n

.

%%main(int argc,char **ar**)

} yylex();

printf("%8d%8d%8d\n",lines,words,chars);

}

wc.l是程式檔名

在dos命令視窗輸入:

c:\users\asus\desktop\fbcode\wordcount>flex wc.l1.flex wc.l (生成lex.yy.c)

c:\users\asus\desktop\fbcode\wordcount>gcc -g -wall -o output lex.yy.c (生成output.exe)

在wordcount資料夾下新建了text.txt檔案,裡面輸入幾行英文句子(注意最後一行要有回車鍵,不然會影響lines的輸出結果)

執行:c:\users\asus\desktop\fbcode\wordcount>output test.txt

擴充套件:

1.在命令列下輸入 output.exe 就會開啟output程式,這時引數個數argc為1,ar**[0]是程式名本身 如果你輸入output.exe text.txt,則引數個數argc為2,第乙個引數ar**[0]是程式名本身,第二個引數ar**[1]是「 text.txt」。

2.如果使用者在命令列給出了檔名,主例程會開啟這個檔案並把相應的檔案控制代碼賦給yyin,否則yyin將保持未賦值的狀態,這種情況下yylex會自動把stdin賦給它。(stdin是c語言中標準輸入流,一般用於獲取鍵盤輸入到緩衝區裡的東西。)

3.yylex()

由lex建立的掃瞄程式的入口點yylex()。呼叫yylex()啟動或者重新開始掃瞄。如果lex動作執行將數值傳遞給呼叫的程式return,那麼對yylex()的下次呼叫就從它的停止地方繼續。

yylex()中的使用者**

規則段中的所有**都被拷貝到yylex()。以空白開始的行被假定是使用者**。"%%"後的**直接放置在接近掃瞄程式的開始處,在第一條執行的語句之前。

Flex 讀取外 部XML檔案

因為flex 支援強大的 e4x功能,所以 在flex中xml文 件的操作非常簡單 下面,總結一下常用的讀取xml配 置檔案的方法 1 使用model標籤形式 首先宣告model標籤 2 使用xml標籤形式 3 使用httpservice result resulthandler event pri...

Flex 動態讀取外部xml檔案

在flex中xml檔案是使用頻率非常高的,因為在flex中xml檔案的操作非常簡單。有的時候我們希望用xml作為配置檔案來動態配置我們的系統。雖然flexsdk提供了乙個只能用在在mxml檔案中標籤,這個標籤的source屬性可以讀取外部的xml檔案,但是這樣的方式會使xml檔案嵌入到生成的swf檔...

Flex 讀取xml檔案的方法

flex 讀取xml檔案的多種方法小結,大家可以根據需要自己選擇。方法一 複製 如下 private function readxml1 void 方法二 複製 如下 private function readxml2 void private function completehandler ev...