gpt4 book ai didi

时间:2019-03-09 标签:c++iomaniptableformatting

转载 作者:行者123 更新时间:2023-11-28 00:06:34 25 4
gpt4 key购买 nike

我遇到了 iomanip 的麻烦.我认为简化的代码比文字更能解释一切。

#include <iostream>
#include <iomanip>
#include <string>

struct Dog {
std::string name;
int age;
};

std::ostream& operator<<(std::ostream& os, Dog dog) {
return os << dog.name << ", " << dog.age << "yo";
}

int main() {
Dog dog;
dog.name = "linus";
dog.age = 10;

std::cout
<< std::left << std::setw(20) << std::setfill(' ') << "INFO"
<< std::left << std::setw(20) << std::setfill(' ') << "AVAILABLE" << std::endl;

std::cout
<< std::left << std::setw(20) << std::setfill(' ') << dog
<< std::left << std::setw(20) << std::setfill(' ') << "yes";

std::cin.get();
}

我会打印一个格式良好的表格,但我的输出对齐不好。简而言之,当我 cout我的狗,setwsetfill仅适用于 dog.name(由于 operator<< 的性质),结果类似于

INFO                AVAILABLE
linus , 10yoyes

代替

INFO                AVAILABLE
linus, 10 yo yes

显然我可以修改 operator<< , 仅附加一个 stringos但在我的真实情况下,我必须更改大量复杂的定义(而且我更愿意避免此类更改!:D)

有什么想法吗?

最佳答案

setw 操纵符设置next 输出的字段宽度,在本例中为dog.name。如果你想在重载函数中直接使用流,真的没有办法。

关于时间:2019-03-09 标签:c++iomaniptableformatting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35393334/

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