如何将数据输出到C++表格中的控制台?在C#中有这个问题,但我需要它在C++中。在表格中输出格式,C++
此,除了在C++:How To: Best way to draw table in console app (C#)
如何将数据输出到C++表格中的控制台?在C#中有这个问题,但我需要它在C++中。在表格中输出格式,C++
此,除了在C++:How To: Best way to draw table in console app (C#)
你不能做的非常相似的C#示例东西:
String.Format("|{0,5}|{1,5}|{2,5}|{3,5}|", arg0, arg1, arg2, arg3);
像:
printf("|%5s|%5s|%5s|%5s|", arg0, arg1, arg2, arg3);
这是我用来做这个的引用:http://www.cplusplus.com/reference/clibrary/cstdio/printf/
这里是什么了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;
}
还有其他事情可以做,以及像设置浮点数的精度,改变使用setw时用作填充的字符,输出除了基数10之外的数字,等等。
检查列值长度并保持长度o记住f值的格式。
printf(" %-4s| %-10s| %-5s|\n", "ID", "NAME", "AGE");
看看MySQL shell界面是如何设计的,它会给你一个好主意。
我找不到我喜欢的东西,所以我做了一个。在https://github.com/haarcuba/text-table
在这里找到它的输出的〔实施例:
+------+------+----+
| |Sex | Age|
+------+------+----+
|Moses |male |4556|
+------+------+----+
|Jesus |male |2016|
+------+------+----+
|Debora|female|3001|
+------+------+----+
|Bob |male | 25|
+------+------+----+
对于表格输出,C的printf击败C++可怕的I/O手了。 –
@DavidHammen但是如果格式太小会怎么样? – Walter
@Walter这绝对是一个问题 - 您可以修补下溢,但为了处理溢出问题,您需要所有逻辑和策略来“合理地”包装。 (从溢出回溯到最接近的分隔符,回退到未定界的边界情况下的包装,然后*然后*担心每行格式化。)这是一个相对简单的问题,但可能比它更值得你正在做一个无关项目的审美抛光。 –