C++中std::cout如何使输出内容对齐
2024-06-25
45
需求描述
在C++中,使用std::cout输出一些内容,需要每一行的某些内容能够对齐,并且占的宽度一致,比如输出一个类似表格的内容时,想要每一列都对齐,可以使用std::cout的格式控制来实现。
比如,以下代码中,需要将myHumen输出为一个三行四列,并且每列能对齐的内容。
#include iostream
#include iomanip
using namespace std;
struct Human {
char name[20];
char name2[20];
char name3[20];
double pts;
};
int main() {
int i;
Human myHumen[3] = {
{Mr, Alan, Turing, 12.25},
{Ms, Ada, Lovelace, 15.25},
{Sir, Edgar Allan, Poe, 45.25}
};
cout Name1 Name2 Name3 Rating endl;
cout -----------------------------------------------------------------------\n;
for(i = 0; i 3; i++) {
cout myHumen[i].name myHumen[i].name2 myHumen[i].name3 myHumen[i].pts endl;
}//this didnt do nice printouts, with leftalign for text and rightalign with numbers
}
实现方法
std::cout的内容宽度和对齐配置,可以用如下方式实现:
cout std::left std::setw(30) This is left aligned
std::right std::setw(30) This is right aligned;
所以,前文的代码可以修改如下:
cout std::left setw(8) Name1 std::left setw(12) Name2 std::left setw(10) Name3 std::left setw(10) Rating endl;
cout -----------------------------------------------------------------------\n;
for(i = 0; i 3; i++) {
cout std::left setw(8) myHumen[i].name std::left setw(22) myHumen[i].name2 std::left setw(22) myHumen[i].name3 std::left setw(20) myHumen[i].pts endl;
}//this didnt do nice printouts, with leftalign for text and rightalign with numbers
以上修改后的代码运行结果如下:
Name1 Name2 Name3 Rating
Mr Alan Turing 12.25
Ms Ada Lovelace 15.25
Sir Edgar Allan Poe 45.25
更新于:4个月前赞一波!2
相关文章
- CSS overflow 内容溢出时的显示方式
- CSS 控制内容显示行数
- linux 命令之查看文件内容
- .git 目录结构内容解析
- git mv 从工作区和暂存区中重命名内容
- git rm 从暂存区中删除内容
- 微信小程序内容安全检测(敏感词、敏感图)
- vscode中自动将json格式的内容自动生成对应的代码
- Python 程序:读取文件内容
- 使用grep递归搜索文件内容
- C#中自定义class在调试时如何定制对象显示的内容
- Linux中使用binwalk比较两个二进制文件的内容
- rust语言处理含有中文内容文档的处理方法
- Linux中通过bash命令如何在文本文件前追加文本内容
- Powershell脚本递归替换文本文件中的内容
- 内容是python最常用来做什么
- PHP提取内容中的MP4和MP3
- 让头部标签也能调用文章系统内容
- 主题签定图标,给主题内容带点色
- 让齐博CMS实现“内容复制”功能
文章评论
评论问答