首页 > 解决方案 > C++ 使用同一个函数时如何修改间距

问题描述

假设我有两个函数,每个函数都使用这样的函数printInfo()

void printInfo() {
    cout << "4spaceshere " << "name";
}

void printMemberInfo() {
    printInfo();
}

void printMember() {
    printInfo();
}

int main() {
    printMemberInfo();
    printMember();

    return 0;
}

无论如何,我可以"name"为每个函数修改之前的空格吗?

例如: printMemberInfo()必须产生这样的输出:3spaceshere name,并且printInfo()会打印出来5spaceshere name。我试过了cout << setw()cout.width()但似乎没有用。希望大家能帮忙!谢谢!

标签: c++

解决方案


要么使用参数让printInfo知道要打印的空格数:

#include <iostream>
#include <iomanip>

void printInfo(int spaces)
{
    std::cout << std::setw(spaces) << ' ' << "name\n";
}

void printMemberInfo()
{
    printInfo(5);
}

void printMember()
{
    printInfo(3);
}

int main()
{
    printMemberInfo();
    printMember();
}

或让调用函数打印所需的空格:

#include <iostream>
#include <iomanip>

void printInfo(int spaces)
{
    std::cout << "name\n";
}

void printMemberInfo()
{
    std::cout << std::setw(5) << ' ';
    printInfo();
}

void printMember()
{
    std::cout << std::setw(3) << ' ';
    printInfo();
}

int main()
{
    printMemberInfo();
    printMember();
}

推荐阅读