|
| БЕСПЛАТНАЯ ежедневная online лотерея! Выигрывай каждый день БЕСПЛАТНО! |
|
|
wsprintf
The wsprintf function formats and stores a series of characters and values in a buffer. Any arguments are converted and copied to the output buffer according to the corresponding format specification in the format string. The function appends a terminating null character to the characters it writes, but the return value does not include the terminating null character in its character count.
int wsprintf(
LPTSTR lpOut, // pointer to buffer for output LPCTSTR lpFmt, // pointer to format-control string ... // optional arguments );
Parameters
lpOut
Points to a buffer to receive the formatted output.
lpFmt
Points to a null-terminated string that contains the format-control specifications. In addition to ordinary ASCII characters, a format specification for each argument appears in this string. For more information about the format specification, see the Remarks section.
...
Specifies one or more optional arguments. The number and type of argument parameters depend on the corresponding format-control specifications in the lpFmt parameter.
Return Values
If the function succeeds, the return value is the number of characters stored in the output buffer, not counting the terminating null character. If the function fails, the return value is less than the length of the format-control string. To get extended error information, call GetLastError.
Remarks
The format-control string contains format specifications that determine the output format for the arguments following the lpFmt parameter. Format specifications, discussed below, always begin with a percent sign (%). If a percent sign is followed by a character that has no meaning as a format field, the character is not formatted (for example, %% produces a single percent-sign character). The format-control string is read from left to right. When the first format specification (if any) is encountered, it causes the value of the first argument after the format-control string to be converted and copied to the output buffer according to the format specification. The second format specification causes the second argument to be converted and copied, and so on. If there are more arguments than format specifications, the extra arguments are ignored. If there are not enough arguments for all of the format specifications, the results are undefined.
A format specification has the following form: %[-][#][0][width][.precision]type Each field is a single character or a number signifying a particular format option. The type characters that appear after the last optional format field determine whether the associated argument is interpreted as a character, a string, or a number. The simplest format specification contains only the percent sign and a type character (for example, %s). The optional fields control other aspects of the formatting. Following are the optional and required fields and their meanings:
Field Meaning - Pad the output with blanks or zeros to the right to fill the field width, justifying output to the left. If this field is omitted, the output is padded to the left, justifying it to the right. # Prefix hexadecimal values with 0x (lowercase) or 0X (uppercase). 0 Pad the output value with zeros to fill the field width. If this field is omitted, the output value is padded with blank spaces. width Copy the specified minimum number of characters to the output buffer. The width field is a nonnegative integer. The width specification never causes a value to be truncated; if the number of characters in the output value is greater than the specified width, or if the width field is not present, all characters of the value are printed, subject to the precision specification. .precision For numbers, copy the specified minimum number of digits to the output buffer. If the number of digits in the argument is less than the specified precision, the output value is padded on the left with zeros. The value is not truncated when the number of digits exceeds the specified precision. If the specified precision is 0 or omitted entirely, or if the period (.) appears without a number following it, the precision is set to 1. For strings, copy the specified maximum number of characters to the output buffer. type Output the corresponding argument as a character, a string, or a number. This field can be any of the following character sequences:
Sequence Insert c A single character. The wsprintf function ignores character arguments with a numeric value of zero. This sequence is interpreted as type WCHAR when the calling application uses the #define UNICODE compile flag and as type CHAR otherwise. C A single character. This sequence is interpreted as type CHAR when the calling application uses the #define UNICODE compile flag and as type WCHAR otherwise. d A signed decimal integer argument. This sequence is equivalent to the i sequence. hc, hC A single character. The wsprintf function ignores character arguments with a numeric value of zero. This sequence is always interpreted as type CHAR, even when the calling application uses the #define UNICODE compile flag. hs, hS A string. This sequence is always interpreted as type LPSTR, even when the calling application uses the #define UNICODE compile flag. i A signed decimal integer. This sequence is equivalent to the d sequence. lc, lC A single character. The wsprintf function ignores character arguments with a numeric value of zero. This sequence is always interpreted as type WCHAR, even when the calling application does not use the #define UNICODE compile flag. ld A long signed decimal integer. This sequence is equivalent to the li sequence. li A long signed decimal integer. This sequence is equivalent to the ld sequence. ls, lS A string. This sequence is always interpreted as type LPWSTR, even when the calling application does not use the #define UNICODE compile flag. This sequence is equivalent to the ws sequence. lu A long unsigned integer. lx, lX A long unsigned hexadecimal integer in lowercase or uppercase. s A string. This sequence is interpreted as type LPWSTR when the calling application uses the #define UNICODE compile flag and as type LPSTR otherwise. S A string. This sequence is interpreted as type LPSTR when the calling application uses the #define UNICODE compile flag and as type LPWSTR otherwise. u An unsigned integer argument. x, X An unsigned hexadecimal integer in lowercase or uppercase.
Note Unlike other Windows functions, wsprintf uses the C calling convention (_cdecl), rather than the Pascal calling convention. As a result, it is the responsibility of the calling process to pop arguments off the stack, and arguments are pushed on the stack from right to left. In C-language modules, the C compiler performs this task.
See Also
wvsprintf
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
| Пригласи друзей и счет твоего мобильника всегда будет положительным! |
wsprintf
Функция wsprintf форматирует и загружает серию символов и оценивается в буфере. Любые аргументы преобразованы и скопированы в выходной буфер согласно соответствующей спецификации формата в строке формата. Функция добавляет завершающий недействительный символ в символы, которые она записывает, но обратная величина не включает завершающий недействительный символ на свой символьный счет.
int wsprintf(
LPTSTR lpOut, // УКАЗАТЕЛЬ, чтобы буферизоваться для выхода LPCTSTR lpFmt, // указатель в форматировать-управляющую строку... // дополнительные аргументы );
Параметры
lpOut
Точки на буфер, чтобы получать форматированный выход.
lpFmt
Точки на недействительный расторгнутую строку, которые содержат форматировать-управляющую спецификацию. Дополнительно к обычным символам ASCII, спецификация формата для каждого аргумента появляется в этой строке. Более подробно о спецификации формата, смотри секцию Замечаний.
...
Определяет один или более дополнительных аргументов. Число и тип параметров аргумента зависят от соответствующей форматировать-управляющей спецификации в параметре lpFmt.
Обратные Величины
Если функция добивается успеха, обратная величина является количеством символов загруженных в выходной буфер, не считая завершающий недействительный символ. Если функция терпит неудачу, обратная величина - менее чем длина форматировать-управляющей строки. Для того, чтобы расширять информацию ошибки, назовите GetLastError.
Замечания
Форматировать-управляющая строка содержит спецификацию формата, которая определяет выходной формат для аргументов, следующих за параметром lpFmt. Спецификация Формата, обсуждала ниже, всегда начните с процентов знака (%). Если проценты знака следует за символом, что не имеет означая как область формата, символ не отформатирован (например, %% выдача единственные проценты-знак символа). Форматировать-управляющая строка прочитана из слева направо. Когда первая спецификация формата (если имеется), столкнулся с, это вызывает величину первого аргумента после форматировать-управляющей строки, чтобы быть преобразованн и скопированным в выходной буфер согласно спецификации формата. Вторая спецификация формата вызывает второй аргумент, который нужно преобразовывать и копировался, и так далее. Если есть больше аргументов чем спецификация формата, дополнительные аргументы проигнорированы. Если есть не достаточно аргументов для всей спецификации формата, результаты неопределенные.
Спецификация формата имеет следующее формы: %[-][#][0][width][.precision]type Каждая область - единственный символ или число, значащие конкретную опцию формата. Символы типа, которые появляются после того, как последняя дополнительная область формата определит интерпретирован связанный аргумент как символ, строка, или число. Самая простая спецификация формата содержит только проценты знака и символ типа (например, %s). Дополнительные области управляют другими аспектами форматирования. Следующее - дополнительная и необходимая области и их значения:
Значение Области - Заполнять выходу с пробелами или нулями направо, чтобы заполнять ширину области, оправдывающую выход налево. Если эта область опущена, выход заполняется налево, оправдывая это направо. # Префиксные шестнадцатеричные величины с 0x (верхний регистр) или 0X (верхний регистр). 0 Панель выходная величина с нулями, чтобы заполнять области ширину. Если эта область опущена, выходная величина заполнена чистыми пробелами. ширина Копирует определенное минимальное количество символов в выходной буфер. Широтная область является целым nonnegative. Широтная спецификация никогда не вызывает величину, которая нужно исключаться; если количество символов в выходной величине больше, чем определенная ширина, или если широтная область не присутствует, все типы величины напечатаны, подлежавшему прецизионной спецификации. .precision Для чисел, копировать определенное минимальное количество цифр в выходной буфер. Если количество цифр в аргументе - менее чем определенная точность, выходная величина заполняется слева с нулями. Величина не исключена когда количество цифр превышает определенную точность. Если определенная точность - 0 или опущенное полностью, или если период (.) появляется без числа, следующего за этим, точностью установлен на 1. Для строк, скопируйте определенное максимальное количество символов в выходной буфер. Выход типа соответствующий аргумент как символ, строка, или число. Эта область может быть любой из следующих символьных последовательностей:
Последовательность Включается c единственный символ. Функция wsprintf игнорирует символьные аргументы с числовой величиной нуля. Эта последовательность интерпретирована как тип WCHAR когда вызывающее приложение использует флаг компиляции #define УНИКОДА и как СИМВОЛ типа в противном случае. C Единственный символ. Эта последовательность интерпретирована как СИМВОЛ типа когда вызывающее приложение использует флаг компиляции #define УНИКОДА и как тип WCHAR в противном случае. d подписанный десятичный аргумент целого. Эта последовательность является эквивалентом мне последовательности. hc, hC единственный символ. Функция wsprintf игнорирует символьные аргументы с числовой величиной нуля. Эта последовательность всегда интерпретирована как СИМВОЛ типа, даже когда вызывающее приложение использует флаг компиляции #define УНИКОДА. hs, hS строка. Эта последовательность всегда интерпретирована как тип LPSTR, даже когда вызывающее приложение использует флаг компиляции #define УНИКОДА. я подписанное десятичное целое. Эта последовательность является эквивалентом d последовательности. аккр., аккр. единственный символ. Функция wsprintf игнорирует символьные аргументы с числовой величиной нуля. Эта последовательность всегда интерпретирована как тип WCHAR, даже когда вызывающее приложение не использует флаг компиляции #define УНИКОДА. ld долго (длиной) подписанное десятичное целое. Эта последовательность является эквивалентом li последовательности. li долго (длиной) подписанное десятичное целое. Эта последовательность является эквивалентом ld последовательности. ls, lS строка. Эта последовательность всегда интерпретирована как тип LPWSTR, даже когда вызывающее приложение не использует флаг компиляции #define УНИКОДА. Эта последовательность является эквивалентом ws последовательности. lu длинное без знака целое. lx, lX длинное без знака шестнадцатеричное целое в верхнем регистре или верхнем регистре. s строка. Эта последовательность интерпретирована как тип LPWSTR когда вызывающее приложение использует флаг компиляции #define УНИКОДА и как тип LPSTR в противном случае. S Строка. Эта последовательность интерпретирована как тип LPSTR когда вызывающее приложение использует флаг компиляции #define УНИКОДА и как тип LPWSTR в противном случае. u без знака аргумент целого. x, X без знака шестнадцатеричное целое в верхнем регистре или верхнем регистре.
Примечание В отличие от других функций Windows, wsprintf использует C, вызывающее соглашение (_cdecl), а не Pascal, вызывающее соглашение. В результате, это - ответственность вызова процесса, чтобы выталкивать аргументам стек, и аргументы вытолкнуты в стек из справа налево. В модулях C-language, компилятор C выполняет эту задачу.
Смотри Также
wvsprintf
|
|
|
|
| |