4

我正在尝试了解机械手……他们有特定的顺序吗?

对于 ex 确实std::setw在之后或之前出现std::setfill,它们应该在不同的行中吗?

4

2 回答 2

3

没有特定的顺序,只要确保包含<iomanip>库即可。

关于您的 setw/setfil 问题的示例:

#include <iostream>
#include <iomanip>
using namespace std;

int main()
{
    cout  << setw(10) << setfill('*');
    cout << 123;
}
于 2018-03-28T01:14:51.280 回答
1

没有具体的顺序。但是请注意这一点,例如,如果您想使用 std::left 和 std::right,或者将所有内容写在一行中,那么事情会变得有些棘手。

例如,这不会打印预期的输出(仅打印:)7

std::cout << std::setw(10) << std::left << 7 << std::setfill('x') << std::endl;

因为你需要先设置属性,然后打印你想要的任何东西。所以下面的所有三行都将起作用,无论它们的位置发生变化(打印:)xxxxxxxxx7

std::cout << std::setw(10) << std::setfill('x') << std::right << 7 << std::endl;
std::cout << std::right << std::setw(10) << std::setfill('x') << 7 << std::endl;
std::cout << std::setfill('x') << std::right << std::setw(10) << 7 << std::endl;

下面的代码只是为了澄清事情。

#include <iostream>
#include <iomanip>

int main()
{
    std::cout << std::setw(15) << std::setfill('-') << "PRODUCT" << std::setw(15) << std::setfill('-') << "AMOUNT" << std::endl;
    std::cout << std::setw(15) << std::setfill('-') << "Brush"  << std::setw(15) << std::setfill('-') << 10 << std::endl;
    std::cout << std::setw(15) << std::setfill('-') << "Paste"  << std::setw(15) << std::setfill('-') << 8 << std::endl << std::endl;

    std::cout << std::setw(15) << std::left << std::setfill('-') << "PRODUCT" << std::setw(15) << std::left << std::setfill('-') << "AMOUNT" << std::endl;
    std::cout << std::setw(15) << std::left << std::setfill('-') << "Brush"  << std::setw(15) << std::left << std::setfill('-') << 10 << std::endl;
    std::cout << std::setw(15) << std::left << std::setfill('-') << "Paste"  << std::setw(15) << std::left << std::setfill('-') << 8 << std::endl << std::endl;

    std::cout << std::setw(15) << std::right << std::setfill('-') << "PRODUCT" << std::setw(15) << std::right << std::setfill('-') << "AMOUNT" << std::endl;
    std::cout << std::setw(15) << std::right << std::setfill('-') << "Brush"  << std::setw(15) << std::right << std::setfill('-') << 10 << std::endl;
    std::cout << std::setw(15) << std::right << std::setfill('-') << "Paste"  << std::setw(15) << std::right << std::setfill('-') << 8 << std::endl << std::endl;

    return 0;
}
于 2018-03-28T12:09:58.417 回答