Format output in a table, C++

前端 未结 4 1544
春和景丽
春和景丽 2020-12-09 20:30

How can I output data to the console in a table in C++? There\'s a question for this in C#, but I need it in C++.

This, except in C++: How To: Best way to draw table

相关标签:
4条回答
  • 2020-12-09 21:00

    Here's a small sample of what iomanip has:

    #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.

    http://cplusplus.com/reference/iostream/manipulators/

    0 讨论(0)
  • 2020-12-09 21:03

    Can't you do something very similar to the C# example of:

    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/

    0 讨论(0)
  • 2020-12-09 21:10

    I couldn't find something I liked, so I made one. Find it at https://github.com/haarcuba/text-table

    Here's an exmaple of its output:

    +------+------+----+
    |      |Sex   | Age|
    +------+------+----+
    |Moses |male  |4556|
    +------+------+----+
    |Jesus |male  |2016|
    +------+------+----+
    |Debora|female|3001|
    +------+------+----+
    |Bob   |male  |  25|
    +------+------+----+
    
    0 讨论(0)
  • 2020-12-09 21:10

    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.

    0 讨论(0)
提交回复
热议问题