迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > C++ >

在 C++ 中创建表

作者:迹忆客 最近更新:2023/08/19 浏览次数:

在C++中,可以使用 iomanip 库以表格的形式显示数据。 我们还将了解 iomanip 库有助于打印表中数据的各种方法。

在本文中,我们将讨论如何在 C++ 中以表格的形式打印数据。


在 C++ 中创建表的函数

在C++中,要打印表中的数据,我们需要打印等宽的列并使用iomanip库。 如果任何列中的值小于该列的宽度,我们需要添加填充以使宽度等于其他列。

iomanip 库提供了许多方法来操作程序的输出。 我们只会了解 setfill() 函数和 setw() 函数,因为它们只需要在表中打印数据。

setw() 函数用于设置输出字段的宽度。 setw() 函数的语法为 setw(number),其中 number 表示要在输出字段的宽度中设置的字符数。

示例代码:

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

int main()
{
    cout<< setw(10)<< "Monday" << endl;
    cout<< setw(10)<< "Tuesday" << endl;
    cout<< setw(10)<< "Wednesday" << endl;
    return 0;
}

输出:

    Monday
   Tuesday
 Wednesday

当打印单词 Monday、Tuesday 和 Wednesday 时,我们将输出值的宽度指定为 10。

如果是星期一,输出将添加 4 个空格以使宽度等于 10;如果是星期二,则添加 3 个空格;如果是星期三,则添加 1 个空格。

setfill() 函数用作填充字符。 setfill() 函数的语法为setfill(char ch),其中ch是需要填充黑色空格的字符。

示例代码:

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

int main()
{
    cout<< setfill('#') << setw(10)<< "Monday" << endl;
    cout<< setfill('#') << setw(10)<< "Tuesday" << endl;
    cout<< setfill('#') << setw(10)<< "Wednesday" << endl;
    return 0;
}

输出:

####Monday
###Tuesday
#Wednesday

我们将宽度指定为 10 并打印单词 Monday、Tuesday 和 Wednesday。 如果没有 setfill() 函数,输出将包含空格字符,以使单词的输出长度为 10,如前面的示例所示。

但是,当我们使用 setfill() 方法并将字符 # 作为输入参数时,输出中的空格将被字符 # 替换。

对于星期一,使用 4 个填充字符 # 使宽度等于 10。对于星期二,使用 3 个填充字符,对于星期三,使用 1 个填充字符。

填充字符默认放置在左侧,但我们也可以使用 std::left 将填充字符打印在右侧。 您可以在以下示例中观察到这一点,其中填充字符打印在输出值的右侧。

示例代码:

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

int main()
{
    cout<< setfill('#') << left << setw(10)<< "Monday" << endl;
    cout<< setfill('#') << left << setw(10)<< "Tuesday" << endl;
    cout<< setfill('#') << left << setw(10)<< "Wednesday" << endl;
    return 0;
}

输出:

Monday####
Tuesday###
Wednesday#

在 C++ 中创建正确对齐的表格

让我们看一个用 C++ 制作表格并正确对齐的示例。 在下面的示例中,我们用 C++ 打印了表中的年龄和生日。

我们使用 C++ 中 iomanip 库的 setw() 函数来设置条目的宽度。

示例代码:

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

class Birthday
{
  public:
    string studentName;
    int studentAge;
    int birthDay;
    string birthMonth;
    string birthYear;

    Birthday(string name, int age, int day, string month, string year)
    {
        studentName = name;
        studentAge = age;
        birthDay = day;
        birthMonth = month;
        birthYear = year;
    }
};

int main()
{
    Birthday recordArray[5] = {Birthday("Naman", 20, 13, "January","1999"),                                              Birthday("Divesh", 23, 04, "May","1996"),                                                Birthday("Nitish", 19, 29, "December","2000"),                                            Birthday("Mandeep", 25, 19, "March","1998"),
                               Birthday("Aman", 20, 29, "April","1989")};

    cout << left << setw(10) << "Name" << left << setw(5) << "Age" << left
         << setw(8)<< "Day" << left << setw(10) << "Month"  << left << setw(4) << "Year" << endl;

    for (int i = 0; i <= 4; i++)
    {
        cout << left << setw(10) << recordArray[i].studentName
             << left << setw(5) << recordArray[i].studentAge
             << left << setw(8) << recordArray[i].birthDay
             << left << setw(10) << recordArray[i].birthMonth
             << left << setw(4) << recordArray[i].birthYear
            << endl;
    }
    return 0;
}

输出:

Name      Age  Day     Month     Year
Naman     20   13      January   1999
Divesh    23   4       May       1996
Nitish    19   29      December  2000
Mandeep   25   19      March     1998
Aman      20   29      April     1989

我们在每一列中设置了不同的宽度。 每列的宽度大于内容的宽度。

如果输出的宽度小于列的宽度,那么内容就会溢出。 考虑下面的例子。

示例代码:

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

int main()
{
    cout << left << setw(1) << "January" << endl;
    return 0;
}

输出:

January

即使宽度大小设置为小于输出长度的数字,输出也会打印到表中。 在这种情况下,输出长度将等于输出值的长度。


总结

我们已经讨论了使用 C++ 中的 iomanip 库制作表格。 我们学习了 iomanip 库的 setw() 函数和 setfill() 函数的语法。

我们还讨论了使用这些函数在 C++ 中制作表格。 在示例中,我们仅使用 setw() 方法来确定列宽,并使用 setfill() 函数用不同的字符格式化表格。

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

Arduino 中停止循环

发布时间:2024/03/13 浏览次数:444 分类:C++

可以使用 exit(0),无限循环和 Sleep_n0m1 库在 Arduino 中停止循环。

Arduino 复位

发布时间:2024/03/13 浏览次数:315 分类:C++

可以通过使用复位按钮,Softwarereset 库和 Adafruit SleepyDog 库来复位 Arduino。

Arduino 的字符转换为整型

发布时间:2024/03/13 浏览次数:181 分类:C++

可以使用简单的方法 toInt()函数和 Serial.parseInt()函数将 char 转换为 int。

Arduino 串口打印多个变量

发布时间:2024/03/13 浏览次数:381 分类:C++

可以使用 Serial.print()和 Serial.println()函数在串口监视器上显示变量值。

Arduino if 语句

发布时间:2024/03/13 浏览次数:123 分类:C++

可以使用 if 语句检查 Arduino 中的不同条件。

Arduino ICSP

发布时间:2024/03/13 浏览次数:214 分类:C++

ICSP 引脚用于两个 Arduino 之间的通信以及对 Arduino 引导加载程序进行编程。

使用 C++ 编程 Arduino

发布时间:2024/03/13 浏览次数:127 分类:C++

本教程将讨论使用 Arduino IDE 在 C++ 中对 Arduino 进行编程。

Arduino 中的子程序

发布时间:2024/03/13 浏览次数:168 分类:C++

可以通过在 Arduino 中声明函数来处理子程序。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便