_snwprintf_s
заполняет оставшиеся символы в буфере маркером fefe
. Я не могу найти это в документации, но я вижу это в отладчике. Следовательно, ваш второй _snwprintf_s указывает, что у него есть i
доступных символов, но ваша начальная позиция составляет prevLen
символов. Исправьте i
, чтобы также иметь корректировку смещения.
Вместо этого:
out = _snwprintf_s((wbuff+prevLen),i,currLen, L"%s\r\n", name2);
Это:
out = _snwprintf_s((wbuff+prevLen),i-prevLen,currLen, L"%s\r\n", name2);
_snwprintf_s
заполнит весь буфер с маркерами
Вместо этого:
printf("%S of sisze %u", wbuff, wcslen(wbuff));
Это:
printf("%ls of sisze %u", wbuff, (unsigned int)(wcslen(wbuff)));