65function dcstringcprintf(fmt, i, r, d, L, n, c1, c2, c3, ca, maxlen)
result(result)
70 character(len = STRING):: result
71 character(*),
intent(in):: fmt
72 integer,
intent(in),
optional:: i(:), n(:)
73 real(
sp),
intent(in),
optional:: r(:)
74 real(
dp),
intent(in),
optional:: d(:)
75 logical,
intent(in),
optional:: l(:)
76 character(*),
intent(in),
optional:: c1, c2, c3
77 character(*),
intent(in),
optional:: ca(:)
78 integer,
intent(in),
optional:: maxlen
81 call printf(result, fmt, i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca)
82 if (
present(maxlen))
then
83 out_len = max(0, min(len(result), maxlen))
84 if (out_len == 0)
then
86 else if (out_len < len(result))
then
87 result = result(1:out_len)
92function dcstringcprintft(fmt, i, r, d, L, n, c1, c2, c3, ca, maxlen)
result(result)
97 character(len = TOKEN):: result
98 character(*),
intent(in):: fmt
99 integer,
intent(in),
optional:: i(:), n(:)
100 real(
sp),
intent(in),
optional:: r(:)
101 real(
dp),
intent(in),
optional:: d(:)
102 logical,
intent(in),
optional:: l(:)
103 character(*),
intent(in),
optional:: c1, c2, c3
104 character(*),
intent(in),
optional:: ca(:)
105 integer,
intent(in),
optional:: maxlen
106 character(len = STRING):: tmp
109 if (
present(maxlen))
then
110 tmp =
cprintf(fmt, i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca, maxlen=maxlen)
111 out_len = max(0, min(len(result), maxlen))
113 tmp =
cprintf(fmt, i=i, r=r, d=d, l=l, n=n, c1=c1, c2=c2, c3=c3, ca=ca)
114 out_len = len(result)
117 if (out_len > 0)
then
118 result(1:out_len) = tmp(1:out_len)
character(len=string) function dcstringcprintf(fmt, i, r, d, l, n, c1, c2, c3, ca, maxlen)
書式変換出力 (関数版)
character(len=token) function dcstringcprintft(fmt, i, r, d, l, n, c1, c2, c3, ca, maxlen)