Print Using
Outputs formatted text to the screen or output device
Syntax
`
Print [# filenum ,] [ printexpressionlist {,|;} ] Using formatstring ; [ expressionlist [ ; ] ]
`
Parameters
`filenum`
The file number of a file or device opened for `Output` or `Append`. (Alternatively `LPrint` may be used where appropriate, instead of `Print #`)
`printexpressionlist`
Optional preceding list of items to print, separated by commas (`,`) or semi-colons (`;`) (see `Print` for more details).
`formatstring`
Format string to use.
`expressionlist`
List of items to format, separated by semi-colons (`;`).
Description
Print to screen various expressions using a format determined by the `formatstring` parameter. Internally, `Print Using` uses a buffer size of 2048 bytes: while it is highly unlikely that this buffer would be filled, it should be noted that output would be truncated should this limit be reached.
If no expression list is given, the format string will be printed up to the first special marker. Note that the semi-colon after `formatstring` is still necessary, even if no expression list is given.
The format string dictates how the expressions are to be formatted when output to the screen, indicated by the use of special marker characters. There are markers for formatting both string and numeric output:
String formatting

Marker | Formatting
! | prints the first character of a string
\ \ | prints as many characters of a string as occupied between the pair \ \
& | prints the entire string

Numeric formatting

Marker | Formatting
# | placeholder for either an integer digit, or a decimal digit if a decimal point precedes it
, | placed after integer digit indicates groups of 3 digits should be separated by commas in fixed-point notation
. | placed near # indicates place for the decimal point
^^^^ | uses exponential notation (E+/-###) when placed after the digit characters
+ | placed before/after the format string, controls whether the sign of a number is prepended/appended, and causes an explicit '+' sign to be printed for positive numbers
- | placed after the format string, causes the sign of the number to be appended rather than prepended, appending a space/negative sign for positive/negative numbers
$$ | placed at the start of integer digits, causes a dollar sign to be prepended to the number (after the sign if one is prepended)
** | placed at the start of integer digits, causes any padding on the left to be changed from spaces to asterisks
**$ | placed at the start of integer digits, pads on the left with asterisks, and prepends a dollar sign after the asterisks
& | prints a number intelligently, using the exact number of digits required (new to version 0.21.0b)

All of the special marker characters can be escaped by preceding them with the underscore character `"_"`, allowing them to be printed directly. For example, `"_!"` is printed as `"!"`, and `"__"` is printed as `"_"`.
If a numerical value cannot fit in the number of digits indicated by the format string, the formatting is adapted to fit the number, possibly switching to scientific notation, and the number is printed preceded by the percent `"%"` character. E.g., the number `1234` with a `formatstring` of `"##.##"` would be printed as `"%1234.00"`.
All other characters within the format string are printed as they appear.
A new-line character is printed after the values in the expression list unless the expression list is followed by a semicolon (`;`).
Example
`
Print Using "The value is #.## seconds"; 1.019
Print Using "The ASCII code for the pound sign (_#) is ###"; Asc("#")
Print Using "The last day in the year is & \ \"; 31; "December"
`
will produce the output:

    The value is 1.02 seconds
    The ASCII code for the pound sign (#) is  35
    The last day in the year is 31 Dec

Differences from QB

- QB didn't allow `"&"` to be used for printing numbers.

See also

- `Print`
- `Print #`
- `Format`
- `Using`
- `Palette Using`