Этот метод записывает отформатированные данные в объект СString тем же самым способом, которым sprintf форматирует данные в массив символов C-стиля (форматирует и сохраняет ряд символов и значений). Каждый дополнительныйый параметр преобразуется и выводится согласно соответствующей спецификации формата в lpszFormat или строкового ресурса, идентифицированного nFormatID.
void AFX_CDECL Format(
LPCTSTR lpszFormat, ...);
void AFX_CDECL Format(
UINT nFormatID, ...);
lpszFormat
Определяет строку управления форматом.
nFormatID
Определяет идентификатор строкового ресурса, который содержит строку управления форматом.
Замечания
Запрос будет неудовлетворен, если сам строковый объект предлагается как параметр Format. Например, следующий код:
CString str = "Some Data";
str.Format(_T("%s%d"), str, 123) ); /* Внимание: str также
используется в списке параметра.*/
результаты будут непредсказуемыми.
Когда Вы передаете символьную строку в качестве дополнительного параметра, Вы должны явно привести ее к LPCTSTR. Формат имеет ту же самую форму и функцию как параметр формата для функции tprintf. (Для описания формата и параметров, см. tprintf вСправочном руководстве по Run-Time Library .) . Нуль-терминатор будет добавлен в конец строки.
CString str;
str.Format(_T("С плавающей запятой: %.2f\n"), 12345.12345);
_tprintf(_T("%s"), (LPCTSTR) str);
str.Format(_T("Выровненное по левому краю целое число: %.6d\n"), 35);
_tprintf(_T("%s"), (LPCTSTR) str);
str.Format(IDS_SCORE, 5, 3);
_tprintf(_T("%s"), (LPCTSTR) str);
Результат:
Если приложение имеет строковый ресурс с идентификатором IDS_SCORE, который содержит строку "Пенгвины: %d\nЛетчики : %d\n", вышеупомянутый кодовый фрагмент производит такой вывод:
С плавающей запятой: 12345.12
Выровненное по левому краю целое число: 000035
Пингвины: 5
Летчики: 3