21xrx.com
2024-12-22 22:08:44 Sunday
登录
文章检索 我的文章 写文章
如何在C++中以表格形式输出数据?
2023-07-01 22:51:53 深夜i     --     --
C++ 表格 输出 数据 格式

在C++中,我们经常需要以表格形式输出数据,如何实现这个功能呢?下面介绍两种方法:

方法一:使用格式化输出

C++中有一个非常强大的格式化输出函数叫做printf(),它可以帮助我们以表格形式输出数据。使用printf()的时候需要指定输出格式,其中%表示占位符,后面的字母表示数据类型。例如,%d表示输出整数,%f表示输出浮点数,%s表示输出字符串。下面是一个简单的例子:


#include <iostream>

#include <cstdio>

using namespace std;

int main() {

  printf("%-8s %-8s %-8s\n", "Name", "Age", "Score");

  printf("%-8s %-8d %-8.2f\n", "Tom", 18, 98.5);

  printf("%-8s %-8d %-8.2f\n", "Jerry", 20, 88.5);

  return 0;

}

上面的代码输出一个三列的表格,第一行显示列名,第二行和第三行显示具体的数据。在第一行的每个字符串后面加了一个分隔符-,表示左对齐,总长度为8个字符。在第二行和第三行中,%-8d表示输出一个左对齐的整数,总长度为8个字符,%-8.2f表示输出一个左对齐的保留两位小数的浮点数,总长度为8个字符。输出结果如下:


Name   Age   Score 

Tom   18    98.50 

Jerry  20    88.50 

方法二:使用C++流输出

C++中的输出流也可以很方便地输出表格。使用流输出的时候,我们需要指定列宽,以及对齐方式等参数。下面是一个例子:


#include <iostream>

#include <iomanip>

using namespace std;

int main() {

  cout << setw(8) << left << "Name"

     << setw(8) << left << "Age"

     << setw(8) << left << "Score" << endl;

  cout << setw(8) << left << "Tom"

     << setw(8) << left << 18

     << setw(8) << left << fixed << setprecision(2) << 98.5 << endl;

  cout << setw(8) << left << "Jerry"

     << setw(8) << left << 20

     << setw(8) << left << fixed << setprecision(2) << 88.5 << endl;

  return 0;

}

上面的代码实现了和前面例子相同的功能,输出结果也一样。setw(8)表示设置列宽为8个字符,left表示左对齐,fixed和setprecision(2)表示保留两位小数。输出结果如下:


Name  Age   Score 

Tom   18   98.50 

Jerry  20   88.50 

总结

以上两种方法都可以实现以表格形式输出数据的功能,它们各有优劣,根据需要选择即可。需要注意的是,在使用格式化输出的时候,要确保指定的格式和输出的数据类型匹配,否则会出现错误。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复