uniSPrintf()
Formats a string.
Synopsis
int uniSPrintf(string &s, string format [,<type1> var1 [,<type2> var2 ...]]);
Parameters
Parameter | Description |
---|---|
s | String. The characters are written to this string. |
format | Format. How are the characters displayed, for example, as a string %s |
var1, var2, ... | Values that are written. |
Type signs
d | The argument is represented as a decimal number |
o | The argument is represented as an octal number without leading zeros. |
u | The argument is displayed as an unsigned decimal number. |
x | The argument is represented as a hexadecimal number (without leading 0x). The letters abcdef are used. |
X | Like x. But the letters ABCDEF are used. |
f |
The argument float/double is represented as a decimal number. [ - ] ddd.ddd is the default: |
e |
The argument float/double is represented as an exponent number in the format [ - ] d.ddde dd The exponent always contains at least two places. If the value is zero, the exponent is zero. |
E | Similar to e. Instead of e, E is used. |
g | Similar to for e, but dependent on the value. The conversion type e is only used when the exponent is less than -4 or greater than the accuracy. |
G | Similar tog. An E is output instead of an e. |
s | The argument is a string. Individual characters are output from the string until either a null character ("/0") has been reached or as many characters as required for accuracy. |
Flag | Meaning |
---|---|
+ | Allows to allocate space for a sign (e.g. for a + or - sign before a number). The number 3.112 formatted with %+6.2f' = +3.11 |
- | Left alignment (the right alignment is default) e.g. uniSPrintf(valueString, "%-8.2f", rawValueF3); In this case the value 2.1 (rawValueF3) is formatted with '%-8.2f' . Thus, the result is 2.10 left aligned (see examples at the end of this page). |
blank | A blank between the percent sign and the width (Number) allows to allocate space for the sign. e.g. % 6.2f. See examples at the end of this page. |
Width | Meaning |
---|---|
Number | The minimum number of characters to be printed e.g. "%6d". If the value that should be printed is shorter than this number blanks are added. |
0Number | The minimum number of characters that should be printed. If the minimum is not reached then leading zeros are filled, e.g. the number 45.765998765 formatted with %07.2f' = 0045.77 means altogether 7 numbers are printed with leading zeros and two decimal places (.2). However, the result can have more then 7 characters. |
.Number | Specifies the number of decimal numbers (decimal places) that should be printed. |
Return value
see Description
Errors
missing/incorrect arguments
Description
Writes outputs under the specified format to the string s and returns the number of characters written, in the event of errors a negative number.
Note: uniSPrintf works with 1 Byte (UTF8-Characters). For string formatting of other characters, use CTRL functions uniSubStr(), uniStrExpand(), uniStrFormat() and uniStrLen().
Example
The following example writes five letters into a text file.
const int STRING_COUNT = 2;
main()
{
int i,j;
file f, f1;
dyn_string russianValue;
russianValue =makeDynString("русский","буcква");
DebugN("Russian letters:", russianValue);
//Opens two files for writing and reading
f=fopen("C:/TEMP/tfile.TXT","w+");
f1=fopen("C:/TEMP/tfile2.TXT","w+");
//writes string values to the text file
for (i=1;i<= STRING_COUNT;i++) uniFPrintfPL(f,"%.5s\n",
russianValue [i]); //Сut the string to a length of 5 letters
for (j=1;j<= STRING_COUNT;j++) fprintf(f1,"%.5s\n",
russianValue [j]);//The text is not correctly written since
fprinft is used
fclose(f);
fclose(f1);
}
Assignment
Availability
CTRL