Formatting output in C++

前端 未结 6 1172
既然无缘
既然无缘 2020-12-01 09:52

In a C++ code I have a matrix of double variables which I print out. However because all of them have different number of digits, the output format is destroyed. One solutio

6条回答
  •  無奈伤痛
    2020-12-01 10:11

    Use manipulators.

    From sample here:

    #include 
    #include 
    #include 
    int main()
    {
        std::cout.imbue(std::locale("en_US.utf8"));
        std::cout << "Left fill:\n" << std::left << std::setfill('*')
                  << std::setw(12) << -1.23  << '\n'
                  << std::setw(12) << std::hex << std::showbase << 42 << '\n'
                  << std::setw(12) << std::put_money(123, true) << "\n\n";
    
        std::cout << "Internal fill:\n" << std::internal
                  << std::setw(12) << -1.23  << '\n'
                  << std::setw(12) << 42 << '\n'
                  << std::setw(12) << std::put_money(123, true) << "\n\n";
    
        std::cout << "Right fill:\n" << std::right
                  << std::setw(12) << -1.23  << '\n'
                  << std::setw(12) << 42 << '\n'
                  << std::setw(12) << std::put_money(123, true) << '\n';
    }
    

    Output:

    Left fill:
    -1.23*******
    0x2a********
    USD *1.23***
    
    Internal fill:
    -*******1.23
    0x********2a
    USD ****1.23
    
    Right fill:
    *******-1.23
    ********0x2a
    ***USD *1.23
    

提交回复
热议问题