Я пытаюсь создать новую строку, используя sprintf_s из WCHAR. Мой код выглядит так:
#include <stdio.h>
#include <Windows.h>
void main(int argc, char ** argv) {
TCHAR header[200];
TCHAR* uuid = L"4facda65-5b27-4c70-b7d4-58c57b87682a";
sprintf_s(&header, 200, "Client-ID: %ws\n", uuid);
printf("UUID: %ws\n", uuid);
printf("Header: %ws\n", header);
}
Почему заголовок печатается как Header:
, а не как Header: 4facda65-5b27-4c70-b7d4-58c57b87682a
.
Я просто не могу понять, что я делаю неправильно.
РЕДАКТИРОВАТЬ: ссылка Тима Рэндалла помогла мне на пути к решению, которое работает.
Замена строки sprintf_s
на swprintf(header, sizeof(header) / sizeof(*header), L"Client-ID: %ws\n", uuid);
, кажется, работает.
Тем не менее, я не уверен, почему это работает, а почему sprintf_s
нет?