gpt4 book ai didi

c++ - cout:与循环 cout 语句一致的间距

转载 作者:太空狗 更新时间:2023-10-29 20:05:47 28 4
gpt4 key购买 nike

我经常遇到要将二维数组打印到屏幕或文件的情况。我的标准方法是这样的:

for(int q=0; q<x; q++)
{
cout << "\n";
for(int w=0; w<y; w++)
cout << number[q][w] << "\t";
}

但是,当 number 的元素长度不同时,这通常会导致列不能正确对齐。如何在每个数字之后(或之前)添加正确数量的空格以使列对齐?

最佳答案

使用 std::setw() , std::left and std::right .

#include <iostream>
#include <iomanip>

void printNumber(int x) {
std::cout << "X:" << std::setw(6) << x << ":X\n";
}

void printStuff() {
printNumber(528);
printNumber(3);
printNumber(73826);
printNumber(37);
}

int main() {
std::cout << "Left-aligned\n";
std::cout << std::left;
printStuff();
std::cout << "Right-aligned\n";
std::cout << std::right;
printStuff();
}

输出:

Left-aligned
X:528 :X
X:3 :X
X:73826 :X
X:37 :X
Right-aligned
X: 528:X
X: 3:X
X: 73826:X
X: 37:X

(演示:http://ideone.com/6IdIc .)

在此示例中,我使用 6 作为预期的最大宽度。如果您不知道最大值,您要么需要对数据进行初始传递以找出最大值,要么只使用您正在使用的数据类型的最大值(为了使其可移植,您可以使用 std::numeric_limits<T>::max ).

关于c++ - cout:与循环 cout 语句一致的间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11334271/

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