在 C++ 中创建表
在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 类型
发布时间: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++ 中的异常 Warning: Cast From Pointer to Integer of Different Size
发布时间:2023/08/19 浏览次数:106 分类:C++
-
这篇快速文章是关于 C++ 中 cast from pointer to integer of different size 警告的解决方案。 该警告通常在不同的编译器上显示为错误。C++ 中 Warning: Cast From Pointer to Integer of Different Size
在 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(消息摘要算法)之前,了解哈