C6303
Предупреждение C6303: несоответствие строки формата. Передан параметр <номер>, являющийся широким символом, тогда как в вызове <функции> требуется символьная строка.
Данное предупреждение означает, что строка формата указывает на необходимость строки однобайтовых знаков. Однако передана строка двухбайтовых знаков. Данная ошибка, скорее всего, приведет к сбою или к какому-либо повреждению.
Пример
Это предупреждение создается в следующем примере кода:
#include <stdio.h>
void f()
{
wchar_t buff[5] = L"hi";
printf("%s", buff);
}
Для устранения этого предупреждения используйте параметр %ls, как показано в следующем коде:
#include <stdio.h>
void f()
{
wchar_t buff[5] = L"hi";
printf("%ls", buff);
}
В следующем примере кода для устранения этого предупреждения используется функция безопасной обработки строк printf_s:
#include <stdio.h>
void f()
{
wchar_t buff[5] = L"hi";
printf_s("%ls",buff);
}