C ++ swprintf () - C ++ стандартна библиотека

Функцията swprintf () в C ++ се използва за записване на форматиран широк низ в широк буферен низ.

Функцията swprintf () е дефинирана в заглавния файл.

прототип на swprintf ()

 int swprintf (wchar_t * буфер, size_t размер, const wchar_t * формат, …);

Функцията swprintf () записва широкия низ, посочен по формат, в буфера. Максималният брой знаци, които могат да бъдат записани, е (размер-1).

След като символите са написани, се добавя завършващ нулев широк знак.

Форматът на широкия низ може да съдържа спецификатори на формат, започващи с%, които се заменят със стойностите на променливи, които се предават на функцията swprintf () като допълнителни аргументи.

swprintf () Параметри

  • буфер: указател към буфера на низа, за да напише резултата.
  • размер: Посочете максимален брой символи, които да бъдат записани в буфер, който е размер-1.
  • формат: указател към завършен с нула широк низ, който се записва в stdout. Състои се от широки символи, заедно с опционални спецификатори на формат, започващи с%. Спецификаторите на формата се заменят със стойностите на съответните променливи, които следват формата.
    Спецификаторът на формата има следните части:
    • Водещ знак%
    • Флагове: По избор един или повече флагове, които променят поведението на преобразуването.
      • -: Ляво обосноваване на резултата в полето. По подразбиране е правилно обосновано.
      • +: Знакът на резултата е прикрепен към началото на стойността, дори и за положителни резултати.
      • Интервал: Ако няма знак, интервал е прикрепен към началото на резултата.
      • #: Извършва се алтернативна форма на преобразуване.
      • 0: Използва се за цяло число и число с плаваща запетая. Водещите нули се използват за подреждане на числата вместо интервал.
    • Ширина: Незадължителна * или цяла стойност, използвана за задаване на поле за минимална ширина.
    • Прецизност: Незадължително поле, състоящо се от a. последвано от * или цяло число или нищо, за да се определи точността.
    • Дължина: Незадължителен модификатор на дължина, който указва размера на аргумента.
    • Спецификатор: Спецификатор на формат за преобразуване. Наличните спецификатори на формата са както следва:
    Спецификатори на формата
    Форматизатор Описание
    % % Разпечатки
    ° С Пише един знак
    с Пише низ от символи
    d или i Преобразува подписано цяло число в десетично представяне
    o Преобразува неподписано цяло число в осмично представяне
    X или x Преобразува неподписано цяло число в шестнадесетично представяне
    u Преобразува неподписано цяло число в десетично представяне
    F или f Преобразува число с плаваща запетая в десетично представяне
    E или e Преобразува число с плаваща запетая в десетична степенна нотация
    A или a Преобразува число с плаваща запетая в шестнадесетичен експонент
    G или g Преобразува число с плаваща запетая в десетична или десетична степенна нотация
    н Връща броя на символите, написани до момента от това извикване на функцията. Резултатът се записва на стойността, посочена от аргумента
    стр Написва дефинирана последователност от символи, дефинираща указател.

    Така че общият формат на спецификатора на формата е:
     % (знамена) (ширина) (. прецизност) (дължина) спецификатор
  • …: Други допълнителни аргументи, указващи данните, които трябва да бъдат записани. Те се появяват в последователност според спецификатора на формата.

swprintf () Върната стойност

  • При успех функцията swprintf () връща броя на записаните символи с изключение на завършващия нулев широк знак.
  • Ако възникне грешка в кодирането или ако броят на генерираните символи е равен или по-голям от размера, се връща отрицателна стойност.

Пример: Как работи функцията swprintf ()?

 #include #include #include #include using namespace std; int main() ( wchar_t hebrew_str() = L"u05D0 u05D1 u05E1 u05D3 u05EA"; wchar_t buffer(100); setlocale(LC_ALL, "en_US.UTF-8"); swprintf(buffer, sizeof(hebrew_str), L"%ls", hebrew_str); wcout << L"Some hebrew letters" << buffer << endl; return 0; )

Когато стартирате програмата, следното ще бъде записано в example.txt:

 Някои ивритски букви א ב ס ד ת

Интересни статии...