1

我是 Bison 的新手,但是在 C/C++ 中没有,在这个开发和正则表达式的时候,我从来没有听说过这样的东西,只有\n那用于新行,但我想知道\t%.10g, 那的解释是什么在代码中是这样的:

line:     '\n'
        | exp '\n'  { printf ("\t%.10g\n", $1); }
;

最好的祝福。

4

3 回答 3

5

它的意思是“打印一个制表符 (\t),后跟一个小数点后 10 位的浮点数,根据数量级 (%.10g) 采用科学或定点表示法,然后是换行符 (\n)” .

于 2009-10-12T13:02:03.500 回答
3

查看解码模式的printf参考:

g 使用较短的%e%f

e 使用 e 字符的科学记数法(尾数/指数)

f 十进制浮点数

因此,%.10g打印具有十位有效数字的十进制数。

于 2009-10-12T13:01:45.797 回答
2

它不是一个正则表达式,而是一个 printf 格式规范:打印一个制表符,后跟一个浮点数,小数点后有 10 位数字,以 %f(浮点表示法)方式或 %e(科学记数法)方式,以较短者为准,并以换行符结束。

man printf
于 2009-10-12T13:03:39.367 回答