gpt4 book ai didi

c++ - 如何删除在 C++ 中使用 setw 时创建的额外空间?

转载 作者:太空宇宙 更新时间:2023-11-04 12:32:19 25 4
gpt4 key购买 nike

我正在尝试使用 setw 格式化文件的输出但没有成功。我知道我的输出是根据它前面变量的字符长度而变化的,但是我不知道如何更改我的代码,以便每一行都独立于它前面的行打印。 (请看图片链接)

由于“Swimming”一词比所有其他词类型都长,这会改变这些列的信息,使报告看起来很糟糕。此外,“金额”列中的逗号似乎也在改变输出。

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++;

Current Program Output

(目前正在处理这些 setw 值,所以请忽略它们目前不与标题对齐)

编辑:将我在 VS 中的字体更改为 Helvetica,因为 Consolas 伤害了我的眼睛,这也影响了我的 .dat 的输出,所以基本上这不是问题。哎呀。

最佳答案

如果您将 std::internal 添加到您的 std::cout 语句中,它将抽出剩余的空间,您可以执行一个新的 setw 之后。这可能比制表符更适合您,尤其是在您不使用等宽字体的情况下。请参阅 this answer. 中的示例确保您的 setw 足够大以容纳您最大的单词...并且不要使用 using namespace std,这是不好的做法。你太无耻了! ;)

关于c++ - 如何删除在 C++ 中使用 setw 时创建的额外空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58172010/

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