空格居然跑到22右边去了,难道不应该在左边吗?


std::cout << std::left;
    std::cout << std::setw(10) << 22;

这里为什么输出结果会是这样呢
空格居然跑到22右边去了,难道不应该在左边吗?因为左对齐把空格挤到右边去了?真是奇怪的设置啊

左对齐,是左边对齐啊,数据从左边开始输出,右边不足10位就补充空格啊

不是的,这里知道最左边的才输出,所以格式化虽然在前面但是还是作用在22上

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

参考GPT和自己的思路:

是的,你说的情况是由于使用了std::left进行左对齐设置导致空格被挤到了右边。具体来说,std::setw(10)设置了输出的宽度为10个字符,而std::left指定了左对齐模式,这意味着如果“22”不够宽,就会在右侧添加空格让它对齐到左侧。因此,空格会在右侧出现而非左侧。希望我的解答能够帮助你理解这个问题!