gpt4 book ai didi

c++ - 使用 c++ setw 尝试对齐第二列

转载 作者:搜寻专家 更新时间:2023-10-31 00:30:56 25 4
gpt4 key购买 nike

我正在尝试确保输出中的第二列对齐,看起来 setw 将是解决方案,但无论我做什么,第二列始终处于关闭状态。这是我从下面的代码中得到的输出...

1> 123
10> 234

但我希望它是...

1>   123
10> 234

我唯一能想到的另一件事是实际获取元素的实际数量和索引的位数,然后从中进行某种长度计算。这似乎只是为了使第二列右对齐而进行了很多处理。

我也试过 << 正确,但是因为我在循环中逐行打印,所以这不会有什么不同

int main()
{
int array[2] = {123,234};
int array2[2] = {1, 10};

for(int i = 0; i < 2; i++){
cout << array2[i] << "> " << setw(4) << array[i] << endl;
}

return 0;
}

最佳答案

使用setw():

您需要为 array2[i] 元素而不是 array[i] 元素设置宽度以获得您正在寻找的对齐方式。

cout << setw (2) << array2[i] << "> " << array[i] << endl;

替代方法 1:

此处使用printf进行格式化打印。

printf ("%-2d> %4d\n", array2[i], array[i]);

%-2d - -2 左对齐宽度为 2 的整数。

%4d - 4 右对齐宽度为 4 的整数。

替代方法 2:

使用制表符,或 \t 字符。

cout <<  array2[i] << ">\t" << array[i] << endl;

\t 将您的光标栏移动到下一个制表位,因此您最终可以根据需要在列中对齐数据。我不建议您使用此方法,因为制表符宽度不可预测。

关于c++ - 使用 c++ setw 尝试对齐第二列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35249241/

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