gpt4 book ai didi

c++ - 使用cout按一定格式打印数字(左对齐和右对齐)

转载 作者:行者123 更新时间:2023-11-30 03:13:48 30 4
gpt4 key购买 nike

如果我这样写代码:

int a = 123456;
cout << setw(20) << setiosflags(ios::right) << a << endl;
cout << setiosflags(ios::left) << setw(20) << a << '*' << endl;

在第 3 行,我将对齐设置为左对齐,所以我的预期输出是

              123456123456              *

但真正的输出是

              123456              123456*

为什么会这样?

我使用的IDE是DevCpp。

最佳答案

std::setiosflags() 设置新标志而不清除任何现有标志。所以在第 3 行,您启用了 ios::left 标志,但没有禁用 ios::right 标志。同时启用两个标志是没有意义的,而且如果启用,流似乎更喜欢 ios::right 标志。

改用 std::leftstd::right。在设置新的对齐方式之前,他们重置了 ios::internalios::leftios::right 标志。

int a = 123456;
cout << setw(20) << right << a << endl;
cout << left << setw(20) << a << '*' << endl;

Live demo

关于c++ - 使用cout按一定格式打印数字(左对齐和右对齐),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58428109/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com