Qual é a diferença entre printf ("% s"), printf ("% ls"), wprintf ("% s") e wprintf ("% ls")?
Considere este programa de amostra:
#include <cstdio>
#include <cwchar>
#include <string>
int main()
{
std::string narrowstr = "narrow";
std::wstring widestr = L"wide";
printf("1 %s \n", narrowstr.c_str());
printf("2 %ls \n", widestr.c_str());
wprintf(L"3 %s \n", narrowstr.c_str());
wprintf(L"4 %ls \n", widestr.c_str());
return 0;
}
A saída disso é:
1 narrow
2 wide
Eu estou pensando:
por que 3 e 4 não imprimiramquais são as diferenças entre 1 e 3 e 2 e 4.faz alguma diferença se narrowstr estiver em utf8 e widestr estiver em utf16?