std :: setw和unicode字符

时间:2018-04-16 13:24:57

标签: c++ unicode setw

我的问题显示在以下最小例子中:

#include <iostream>
#include <string>
#include <iomanip>
int main()
{
    int width = 15;
    std::cout << std::left;
    std::cout << std::setw(width) << "Prints well" << std::setw(width) << "This too" << '\n';
    std::cout << std::setw(width) << "\u221E" << std::setw(width) << "This not?" << '\n';
    std::cout << std::setw(width+2) << "\u221E" << std::setw(width) << "This is good" << '\n';
}

使用g ++编译,打印:

Prints well    This too       
∞            This not?      
∞              This is good

因此,似乎unicode符号使用了setw中的3个空格而不是1个空格。有没有一种简单的方法来解决这个问题,事先不知道unicode字符是否会出现在字符串中?

0 个答案:

没有答案