迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > 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() 函数用不同的字符格式化表格。

上一篇:C++ 中的 POD 类型

下一篇:没有了

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

本文地址:

相关文章

C++ 中的 POD 类型

发布时间:2023/08/19 浏览次数:188 分类:C++

C++ 中的 POD 代表普通旧数据。 它是一个用关键字 struct 或 class 定义的类,只有 int、char、double、bool、signed/unsigned、long/short、float 等数据成员。C++ 中的 POD 类型

在 C++ 中查找对象类型

发布时间:2023/08/19 浏览次数:192 分类:C++

本文讨论在 C++ 中查找对象类型的不同方法。在 C++ 中查找类对象的类型 与简单变量的数据类型(如 int、bool 等)类似,类对象也有一个类型,即它们所属的类:

在 C++ 中定义和使用负无穷大

发布时间:2023/08/19 浏览次数:83 分类:C++

本文讨论了在 C++ 中表示负无穷大的问题并列出了一些可能的解决方案。C++ 使用 IEEE-754 标准来表示浮点数。 浮点数据类型共有三种:float、double 和 long double。

在 C++ 中转换为 SHA256

发布时间:2023/08/19 浏览次数:133 分类:C++

SHA256 转换是一种加密哈希技术,自 90 年代以来一直在使用,但在比特币和区块链出现后获得了重视。它使用一种不可逆的单向哈希技术,这意味着最终答案永远无法逆转回其原始消息,从而使

在 macOS 中编译 C++ 代码

发布时间:2023/08/18 浏览次数:198 分类:C++

本文包含有关 macOS X 的 C++ 编译器的信息。我们将讨论如何使用命令行界面(即终端)使用 g++ 编译器编译和运行代码。

在 Dev C++ 中编译并运行 C++ 11 代码

发布时间:2023/08/18 浏览次数:79 分类:C++

本文是关于使用 Dev C++ 编译 C++ 11 代码。C++ 11 版本 C++ 11是继C++ 3之后的C++新版本,经国际标准组织(ISO)批准于2011年8月12日发布。

C++ 中的清除字符串流

发布时间:2023/08/18 浏览次数:119 分类:C++

本文将介绍在 C++ 中清除或清空字符串流的不同方法。在C++中使用str("")和clear()方法清除字符串流 要清除或清空字符串流,我们可以使用 str("") 和 clear() 方法,但我们必须同时使用这两种方法

在 C++ 中获取文件的 MD5 哈希值

发布时间:2023/08/18 浏览次数:62 分类:C++

MD5 是一种密码协议,以前用于加密,但现在通常用于身份验证。 它基于哈希函数中的哈希过程,针对某些纯文本生成加密的哈希值。什么是哈希函数 在探索 MD5(消息摘要算法)之前,了解哈

扫一扫阅读全部技术教程

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

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便