gpt4 book ai didi

c++ - 如何正确格式化此表?

转载 作者:行者123 更新时间:2023-11-28 01:39:53 28 4
gpt4 key购买 nike

我试图正确地格式化一个表,以便它打印出每列下方的值,从该列的第一个字符开始。我已成功格式化三列,但我无法弄清楚如何格式化 K Count 和 LM Count 列,以便它们以整洁的方式打印出来。

我可以对代码的 while 循环部分进行哪些更正,以便整齐地打印出 K 计数和 LM 计数列?

void printTable(const vector<int>& z, const vector<long>& x, const 
vector<long>& y,
const vector<int>& a, const vector<int>& b)
{
ostringstream ss;
ss << "\n\n\n" << setw(10) << left << "Digits" << "Input Numbers "
<< setw(11) << right << "K Output " << setw(6)
<< right << "K Count " << setw(10) << right << "LM Output " << setw(6)
<< right << "LM Count" << endl;


int i = 0, n = 0;
while (i < 5)
{
string q = to_string(z[2*n]) + " x " + to_string(z[abs(2*n + 1)]);
string r = to_string(x[i]);
string s = to_string(a[i]);
string t = to_string(y[i]);
string u = to_string(b[i]);

ss << setw(10) << left << (i+1) << q
<< setw(16) << right << r
<< setw(11) << right << s
<< setw(12) << right << t
<< setw(10) << right << u << endl;

i++;
n++;
}

string r = ss.str();
cout << r;
}

enter image description here

最佳答案

您正在打印以下内容:
- 数字左对齐超过 10 个字符
- 直接跟在输入数字后面不指定宽度
- K 输出右对齐超过 16 个字符
您还应该指定输入数字的宽度。
试试这个:

ss << setw(10) << left  << (i+1) <<
setw(16) << left << q <<
setw(10) << right << s <<
setw(12) << right << t <<
...

每列的确切宽度可能不正确。亲自尝试一下。

关于c++ - 如何正确格式化此表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47697611/

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