Angesichts der C99 Standard (nämlich die N1256 Entwurf), hängen die Regeln von der Funktionsart: fprintf (printf, sprintf, ...) oder scanf.
Hier sind relevante Teile extrahiert:
Vorwort
Diese zweite Ausgabe annulliert und ersetzt die erste Ausgabe, ISO/IEC 9899:1990, die durch ISO/IEC 9899/COR1:1994, ISO/IEC 9899/AMD1:1995 und ISO/IEC 9899/COR2:1996 ergänzt und korrigiert wurde. Zu den wichtigsten Änderungen gegenüber der vorherigen Ausgabe gehören:
%lf
Konvertierungsspezifizierer erlaubt in printf
7.19.6.1 Die fprintf
Funktion
7 Die Längenmodifikatoren und ihre Bedeutungen sind:
l (ell) Gibt an, dass (...) keine Auswirkung auf einen nachfolgenden a, A, e, E, f, F, g oder G Konvertierungsspezifizierer hat.
L Gibt an, dass ein nachfolgender a-, A-, e-, E-, f-, F-, g- oder G-Konvertierungsspezifizierer für ein Long-Double-Argument gilt.
Dieselben Regeln, die für fprintf
beantragen printf
, sprintf
und ähnliche Funktionen.
7.19.6.2 Die fscanf
Funktion
11 Die Längenmodifikatoren und ihre Bedeutungen sind:
l (ell) Gibt an, dass (...) dass ein nachfolgender a-, A-, e-, E-, f-, F-, g- oder G-Konvertierungsspezifizierer für ein Argument mit dem Typ Zeiger auf double gilt;
L Gibt an, dass eine auf a, A, e, E, f, F, g oder G folgende Umwandlung auf ein Argument mit dem Typ Zeiger auf long double angewendet wird.
12 Die Konvertierungsspezifizierer und ihre Bedeutungen sind: a,e,f,g Entspricht einer Gleitkommazahl mit Vorzeichen, (...)
14 Die Konvertierungsspezifizierer A, E, F, G und X sind ebenfalls gültig und verhalten sich genauso wie a, e, f, g und x.
Lange Rede, kurzer Sinn, für fprintf
werden die folgenden Spezifizierer und die entsprechenden Typen angegeben:
%f
-> doppelt
%Lf
-> long double.
und für fscanf
es ist:
%f
-> Schwimmer
%lf
-> doppelt
%Lf
-> long double.