【发布时间】:2019-10-01 23:44:53
【问题描述】:
我正在尝试使用 setw 格式化文件的输出,但没有成功。我知道我的输出会根据它之前的变量的字符长度而变化,但是我不知道如何更改我的代码,以便每一行都将独立于它之前的行打印。 (请看图片链接)
由于“游泳”一词比所有其他词类型都长,这会改变这些列的信息,使报告看起来很糟糕。此外,“金额”列中的逗号似乎也在改变输出。
fout << s.getID()
<< right << setw(11) << addCommas(s.getAmount()) << "\t"
<< left << setw(14) << s.getType() << "\t"
<< left << setw(14) << s.getLength() << "\t"
<< left << setw(10) << s.getDate() << " "
<< left << setw(15) << s.getFname() << "\t"
<< s.getLname() << endl;
lineCount++;
(目前正在处理这些 setw 值,因此请忽略它们目前不与标题对齐)
编辑:将我在 VS 中的字体更改为 Helvetica,因为 Consolas 伤害了我的眼睛,这也影响了我的 .dat 的输出,所以基本上这不是问题。哎呀。
【问题讨论】:
-
要么为最坏的情况设置宽度,要么为数据集计算最坏的情况,额外通过数据集。
-
标签: c++ formatting format output alignment