我在flex和野牛 计算器一个问题,这个代码实际上承认16进制,十六进制计算器诺托将Flex和野牛
0[xX][0-9a-fA-F]+ {yylval=strtol(yytext,0 ,16);return HEX;}
它实际上承认十六进制值,并做数学运算,但当我想打印结果时,以十进制打印。
,所以我认为它是一个室内用的问题这一部分:
/*main(int argc, char **argv)
{
int tok;
while(tok = yylex()) {
printf("%d", tok);
if(tok == NUMBER) printf(" = %d\n", yylval);
else
if(tok == HEX)
printf(" = %x\n", yylval);
else
printf("\n");
}
}*/
为什么你的代码在评论里面?另请发布[MVCE](https://stackoverflow.com/help/mcve)。 – sepp2k
“做数学运算”的部分在哪里?如果您在包含的代码中评论main',它是否按预期工作? – rici