flex实现读取文件字符数

以下程序是flex与bison教程中的程序%option noyywrap%{int chars=0;int words=0;int lines=0;%}%%[a-zA-z]+ {words++; chars+=strlen(yytext);}\n {chars++; lines++;}. {chars++;}%%main(int argc...
摘要由CSDN通过智能技术生成

以下程序是flex与bison教程中的程序

%option noyywrap
%{
int chars=0;
int words=0;
int lines=0;
%}

%%
[a-zA-z]+ {words++; chars+=strlen(yytext);}
\n        {chars++; lines++;}
.         {chars++;}

%%
main(int argc,char **argv)
{
 if (argc>1)
 {
 if (!(yyin=fopen(argv[1],"r")))    //fopen()函数用于打开文件,“r”表示以只读方式开,//argv[1]  表示输入的文件名
 {
 perror(argv[1]);               //打不开文件argv[1],会输出提示错误信息No such file or directory
 return (1);                         //return 0  代表程序正常退出,return 1代表程序异常退出
 }
 }
 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的输出结果)
运行&#

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值