Что такое "\ t% .10g \ n" - PullRequest
       39

Что такое "\ t% .10g \ n"

1 голос
/ 12 октября 2009

Я новичок в Bison, но в C / C ++ нет, и в это время разработки и регулярных выражений я никогда не слышал ничего подобного, только \n, который используется для новой строки, но я хочу знать, что это объяснение \t%.10g, что в коде выглядит так:

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

С наилучшими пожеланиями.

Ответы [ 3 ]

5 голосов
/ 12 октября 2009

Это означает «печать символа табуляции (\ t), за которым следует число с плавающей запятой с 10 десятичными разрядами, в научной или фиксированной записи в зависимости от порядка величины (% .10g), за которым следует новая строка (\ п)».

3 голосов
/ 12 октября 2009

Посмотрите на printf ссылку для декодирования шаблона:

g Используйте короче %e или %f

e Научная запись (богомол / экспонента) с использованием символа e

f Десятичное число с плавающей запятой

Таким образом, %.10g печатает десятичное число с десятью значащими цифрами.

2 голосов
/ 12 октября 2009

Это не регулярное выражение, а спецификация формата printf: печатать символ табуляции, за которым следует число с плавающей запятой с 10 цифрами после десятичной запятой, либо в% f (запись с плавающей запятой), либо в% e (научное нотирование), в зависимости от того, что короче и заканчиваться переводом строки.

man printf
...