您的位置:

用C++标准输出格式打印数据

一、基本输出

C++中,用于将输出打印到标准输出的语句是cout,其在iostream头文件中定义。以下是一个简单的例子:

#include <iostream>

using namespace std;

int main()
{
    int num = 123;
    cout << num << endl;
    return 0;
}

此程序将输出123,并加上一个换行符endl。其中,小于小于符号<<用于输出。

除了整型外,cout还支持输出各种数据类型,如字符型、实型和字符串。例如:

char ch = 'a';
cout << ch << endl;

double pi = 3.14159;
cout << pi << endl;

string str = "Hello, world!";
cout << str << endl;

上述程序分别会输出a、3.14159和Hello, world!。需要注意的是,在输出字符串时,需要使用string类型。

二、格式控制

在输出数据时,有时需要对数字进行格式控制,例如指定宽度、小数点位数、对齐方式等。C++标准库中提供了一些控制输出格式的函数。以下是常用的一些函数:

  • setw(int n):设置下次输出的宽度为n,宽度不足时自动补齐空格。
  • setprecision(int n):设置输出实数的小数位数为n,四舍五入。
  • setiosflags(ios::left/right/internal/showpos/noshowpos):设置输出左对齐/右对齐/内部对齐/在正数前显示+号/不在正数前显示+号。

以下是一个使用格式控制函数的例子:

#include <iomanip>

using namespace std;

int main()
{
    double pi = 3.14159;
    cout << setw(10) << setprecision(3) << fixed << pi << endl;  // 输出宽度为10,小数点后保留3位,对齐方式为左对齐,固定小数点位数
    cout << setw(10) << setiosflags(ios::right) << 123 << endl;  // 输出宽度为10,对齐方式为右对齐
    return 0;
}

此程序将输出以下内容:

3.142     
       123

三、自定义格式化输出

在上述方法无法满足需求时,可以通过自定义格式化输出来实现更精确的控制。自定义格式化输出的基本思路是:

  • 定义一个自定义类型,重载输出运算符<<
  • 在输出运算符中实现自定义的输出格式

以下是自定义格式化输出的一个例子:

#include <iostream>

using namespace std;

class Square
{
public:
    Square(int side) : m_side(side) {}

    friend ostream& operator<<(ostream& os, const Square& square)
    {
        int i, j;
        for (i = 1; i <= square.m_side; i++)
        {
            for (j = 1; j <= square.m_side; j++)
            {
                os << "# ";
            }
            os << endl;
        }
        return os;
    }

private:
    int m_side;
};

int main()
{
    Square square(5);
    cout << square << endl;
    return 0;
}

此程序将输出以下内容:

# # # # # 
# # # # # 
# # # # # 
# # # # # 
# # # # # 

其中,Square类定义了一个参数为正方形边长的构造函数。在输出运算符中,使用两层循环打印#字符。在main函数中,创建了一个边长为5的正方形对象,并输出了其内容。

四、总结

本文介绍了C++标准中用于输出的cout语句,以及对其输出格式进行控制的方法。此外,还介绍了自定义格式化输出的方法。在实际开发中,根据需求选择合适的输出方式可以提高程序的可读性和运行效率。