Với tiêu chuẩn C99 (cụ thể là dự thảo N1256 ), các quy tắc phụ thuộc vào loại chức năng: fprintf (printf, sprintf, ...) hoặc scanf.
Dưới đây là các phần có liên quan được trích xuất:
Lời tựa
Phiên bản thứ hai này hủy bỏ và thay thế phiên bản đầu tiên, ISO / IEC 9899: 1990, được sửa đổi và sửa chữa bởi ISO / IEC 9899 / COR1: 1994, ISO / IEC 9899 / AMD1: 1995 và ISO / IEC 9899 / COR2: 1996. Những thay đổi lớn từ phiên bản trước bao gồm:
%lf
chỉ định chuyển đổi được phép trong printf
7.19.6.1 fprintf
Hàm
7 Các sửa đổi độ dài và ý nghĩa của chúng là:
l (ell) Chỉ định rằng (...) không có hiệu lực đối với chỉ định chuyển đổi a, A, e, E, f, F, g hoặc G.
L Chỉ định rằng một chỉ định chuyển đổi a, A, e, E, f, F, g hoặc G sau áp dụng cho một đối số kép dài.
Các quy tắc tương tự được chỉ định để fprintf
áp dụng cho printf
, sprintf
và các chức năng tương tự.
7.19.6.2 fscanf
Hàm
11 Các sửa đổi độ dài và ý nghĩa của chúng là:
l (ell) Chỉ định rằng (...) rằng a sau a, A, e, E, f, F, g hoặc G chỉ định chuyển đổi áp dụng cho một đối số có con trỏ kiểu gấp đôi;
L Chỉ định rằng một chỉ định chuyển đổi a, A, e, E, f, F, g hoặc G sau áp dụng cho một đối số có con trỏ kiểu để nhân đôi dài.
12 Các chỉ định chuyển đổi và ý nghĩa của chúng là: a, e, f, g Ghép một số dấu phẩy động được ký tùy ý, (...)
14 Các chỉ định chuyển đổi A, E, F, G và X cũng hợp lệ và hoạt động tương tự như, a, e, f, g và x.
Câu chuyện dài, dành cho fprintf
các nhà đầu cơ sau đây và các loại tương ứng được chỉ định:
%f
-> gấp đôi
%Lf
-> dài gấp đôi.
và cho fscanf
nó là:
%f
-> phao
%lf
-> gấp đôi
%Lf
-> dài gấp đôi.
"%lf"
không xác định; trong các thư viện C99 và C11, nó được định nghĩa giống như"%f"
.