PRINTF
Syntax
SUB PRINTF ("C format string", ParamArray
...)
built-in SUB that calls the existing printf routine in the firmware
for versions 8.11 or later (version 7.51 or later on ARM7 parts)
Description
PRINTF is a way to format
printed output. It can be as simple a short string or quite complex
specifying field sizes and pad characters for a
number. This routine is written in C and is part of the firmware.
As of 8.11 firmware BASIC programs can access this powerful C subroutine. But
the BASIC compiler just passes the parameters to the C and does NO type checking or even counts of parameters.
Rather than duplicate the documentation of PRINTF, there
is a great deal of information for printf in documentation for C such as
PRINTF in the firmware supports c (BYTE), s (STRING), d (decimal INTEGER), x or X for (hex INTEGER), e, E, f, g, or G (for SINGLE).
The G format is used by the ARMbasic PRINT, it differs a little from the G format of C. It displays 0.0 or the range 0.1000000 through 9999999. and outside that it uses D.DDDDDDE+DD and the negative values as well.
Pad characters of 0 or space can be added to fill out LENGTH or WIDTH and PRECISION. PRECISION is limited to 0 to 8 characters.
To add CR <carriage return> to the output printed, either use PRINT or print a %c with a value of 13
Example
\
PRINTF("a simple string")
i =
1234
PRINTF("
%d",i)
' print a decimal integer
DIM x AS
SINGLE
x
= 12.34
PRINTF("
%1.4f",x) '
print a floating point number
with 4 digits of precision
PRINTF("%c%c
a string a single %1.5f an integer %d a hex number %x and a carriage return
%c",13,13,x,i,i,13)
will print out
--
a simple string 1234
12.3400
a
string a single 12.34000 an integer 1234 a hex number 4D2 and a carriage
return
Differences from other BASICs
\
- similar to String.Format in Visual BASIC
- no equivalent in PBASIC
See also
\