[英]Format output in a table, C++
How can I output data to the console in a table in C++?如何在 C++ 的表中将 output 数据发送到控制台? There's a question for this in C#, but I need it in C++.
在 C# 中有一个问题,但我在 C++ 中需要它。
This, except in C++: How To: Best way to draw table in console app (C#)这个,除了 C++: 如何:在控制台应用程序中绘制表格的最佳方法(C#)
Here's a small sample of what iomanip has:以下是 iomanip 的一个小示例:
#include <iostream>
#include <iomanip>
int main(int argc, char** argv) {
std::cout << std::setw(20) << std::right << "Hi there!" << std::endl;
std::cout << std::setw(20) << std::right << "shorter" << std::endl;
return 0;
}
There are other things you can do as well, like setting the precision of floating-point numbers, changing the character used as padding when using setw, outputting numbers in something other than base 10, and so forth.您还可以执行其他操作,例如设置浮点数的精度、在使用 setw 时更改用作填充的字符、输出基数为 10 以外的数字等等。
http://cplusplus.com/reference/iostream/manipulators/ http://cplusplus.com/reference/iostream/manipulators/
I couldn't find something I liked, so I made one.我找不到我喜欢的东西,所以我做了一个。 Find it at https://github.com/haarcuba/text-table
在https://github.com/haarcuba/text-table找到它
Here's an exmaple of its output:这是其 output 的示例:
+------+------+----+
| |Sex | Age|
+------+------+----+
|Moses |male |4556|
+------+------+----+
|Jesus |male |2016|
+------+------+----+
|Debora|female|3001|
+------+------+----+
|Bob |male | 25|
+------+------+----+
Can't you do something very similar to the C# example of:你不能做一些与 C# 示例非常相似的事情:
String.Format("|{0,5}|{1,5}|{2,5}|{3,5}|", arg0, arg1, arg2, arg3);
Like:喜欢:
printf("|%5s|%5s|%5s|%5s|", arg0, arg1, arg2, arg3);
Here's a reference I used to make this: http://www.cplusplus.com/reference/clibrary/cstdio/printf/这是我用来做这个的参考: http://www.cplusplus.com/reference/clibrary/cstdio/printf/
Check the column value length and also keep the length of value in mind to format.检查列值长度,并牢记值的长度以进行格式化。
printf(" %-4s| %-10s| %-5s|\n", "ID", "NAME", "AGE");
See how MySQL shell interface was designed, it will give you a good idea.看看 MySQL shell 接口是如何设计的,它会给你一个好主意。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.