gpt4 book ai didi

c++ - 格式化 C++ setw

转载 作者:太空宇宙 更新时间:2023-11-04 11:37:17 26 4
gpt4 key购买 nike

我正在处理格式,但我没有得到正确的格式。

这是我的代码,这是我得到的输出结果

cout << fixed << setprecision(2) << setw(3) << right << source << setw(20)
<<right <<vec[source].cityname
<< setw(15) << left<< sink << setw(15) << left <<vec[sink].cityname
<< setw(10) << left << vdist[ij] << "miles\n";

我得到这个:

30      Novosibirsk_RU13             Tokyo_JP       10497.68  miles

我想得到这个:

30 Novosibirsk_RU       13  Tokyo_JP             10497.67 miles

我怎样才能得到名字和号码之间的空格?

我已经为此工作了一段时间,但我就是无法获得正确的格式

最佳答案

您在 cout 语句中错误地使用了 std::right IO 操纵器。要实现示例中所示的输出,您需要 vec[source].citynamevec[sink].cityname 显然左对齐:

cout << fixed << setprecision(2) << setw(3) << right << source << 
setw(20) << left <<vec[source].cityname <<
// ^^^^
setw(3) << left<< sink <<
// ^
setw(15) << left <<vec[sink].cityname <<
setw(10) << left << vdist[ij] << "miles\n";

另请注意,如果您使用setw(n) 并且n 小于下一个字段(string) 变量的长度,它不会被截断,但会将整个输出向右移动额外字符的数量。

关于c++ - 格式化 C++ setw,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22662873/

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