Format

From SA-MP Wiki

Jump to: navigation, search

format

Image:Farm-Fresh text lowercase.png Note: This function name starts with a lowercase letter.


Description:

Formats a string to include variables and other strings inside it.


Image:32px-Circle-style-warning.png

Important
Note

This function doesn't support packed strings.


Parameters:
(output[], len, const format[], {Float,_}:...)
output[]The string to output the result to
lenThe maximum length output can contain
format[]The format string
{Float,_}:...Indefinite number of arguments of any tag


Return Values:

This function does not return any specific values.


Format Specifiers

Specifier Meaning
%i Integer (whole number)
%d Integer (whole number).
%s String
%f Floating-point number (Float: tag)
%c ASCII character
%x Hexadecimal number
%b Binary number
%% Literal '%'
%q Escape a text for SQLite. (Added in 0.3.7 R2)

The values for the placeholders follow in the exact same order as parameters in the call. For example, "I am %i years old" - the %i will be replaced with an Integer variable, which is the person's age.

You may optionally put a number between the '%' and the letter of the placeholder code. This number indicates the field width; if the size of the parameter to print at the position of the placeholder is smaller than the field width, the field is expanded with spaces. To cut the number of decimal places beeing shown of a float, you can add '.<max number>' between the '%' and the 'f'. (example: %.2f)

See this post to see how you can specify a variable width or precision by using an asterisk.

Example Usage:

new result[128];
new number = 42;
format(result,sizeof(result), "The number is %i.",number);  //-> The number is 42.
new string[]= "simple message";
format(result,sizeof(result), "This is a %s containing the number %i.", string, number);
// This is a simple message containing the number 42.
new string[64];
format(string,sizeof(string),"Your score is: %d",GetPlayerScore(playerid));
SendClientMessage(playerid,0xFFFFFFAA,string);
new hour, minute, second, string[32];
gettime(hour, minute, second);
 
format(string, sizeof(string), "The time is %02d:%02d:%02d.", hour, minute, second); // will output something like 09:45:02
SendClientMessage(playerid, -1, string);

A quite easy way to insert the literal percent sign (%) is by doing the following.

new string[35];
format(string,sizeof(string),"43%s of my shirts are black.","%%");
SendClientMessage(playerid,0xFFFFFAA,string);

Related Functions

The following functions may be useful, as they are related to this function in one way or another.

  • print: Print a basic message to the server logs and console.
  • printf: Print a formatted message into the server logs and console.
Personal tools
Navigation
Toolbox
In other languages