std :: setw () рассматривает специальные символы как два символа

Почему std :: setw () рассматривает специальные символы как два? Есть ли простой и стильный способ решить эту проблему?

Например:

#include <iostream>
#include <iomanip>

int main()
{
std::cout << std::left << std::setw(10) << "ok" << "ok" << std::endl;
std::cout << std::left << std::setw(10) << "test.." << "ok again" << std::endl;
std::cout << std::left << std::setw(10) << "®èé" << "fail" << std::endl;

return 0;
}

Ouputs:

ok        ok
test..    ok again
®èé    fail

Вот живой тест: http://ideone.com/q57I0H

0

Решение

Oни являются два символа, проверьте значение sizeof("®èé")

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]