注册 登录
编程论坛 C语言论坛

cout 如何像printf一样实现输出对齐

追梦人zmrghy 发布于 2022-04-05 13:15, 1526 次点击
cout 如何像printf一样实现输出对齐

程序代码:

#include<iostream>

using namespace std;

void calc(short r, float *pper, float *parea)
{
    *pper = (2.0*(r+1.0)*3.1415926) - (2.0*r*3.1415926);
    *parea = 3.1415926*(r+1.0)*(r+1.0) - 3.1415926*r*r;
}

int main()
{
    float per_dif,  area;

    for(short rad=1; rad<=10; rad++)
    {
        calc(rad, &per_dif, &area);

        printf("当外圆半径R= %2d   内圆半径r= %2d   外圆、内圆周长差L= %7.5f   圆环面积S= %8.5f\n",rad+1,rad,per_dif,area);
    }
    cout<<endl<<endl;
    for(short rad=1; rad<=10; rad++)
    {
        calc(rad, &per_dif, &area);

        cout<<"当外圆半径R= "<<rad+1<<"   内圆半径r= "<<rad<<"   外圆、内圆周长差L= "<<per_dif<<"   圆环面积S= "<<area<<endl;
    }
}


只有本站会员才能查看附件,请 登录
4 回复
#2
rjsp2022-04-05 20:51
你给 printf 的格式,也给 cout,那就一样

程序代码:
#include <iostream>
#include <iomanip>
using namespace std;

void calc(short r, float *pper, float *parea)
{
    *pper = (2.0*(r+1.0)*3.1415926) - (2.0*r*3.1415926);
    *parea = 3.1415926*(r+1.0)*(r+1.0) - 3.1415926*r*r;
}

int main()
{
    float per_dif,  area;

    for(short rad=1; rad<=10; rad++)
    {
        calc(rad, &per_dif, &area);

        printf("当外圆半径R= %2d   内圆半径r= %2d   外圆、内圆周长差L= %7.5f   圆环面积S= %8.5f\n",rad+1,rad,per_dif,area);
    }
    cout<<endl<<endl;
    for(short rad=1; rad<=10; rad++)
    {
        calc(rad, &per_dif, &area);

        cout<<"当外圆半径R= "<<setw(2)<<rad+1<<"   内圆半径r= "<<setw(2)<<rad<<"   外圆、内圆周长差L= "<<setw(7)<<fixed<<setprecision(5)<<per_dif<<"   圆环面积S= "<<setw(8)<<fixed<<setprecision(5)<<area<<endl;
    }
}
#3
rjsp2022-04-05 20:53
另外说一下,cout 等用起来不方便,C++下一步会准备用 std::format 替代之
https://en.
#4
追梦人zmrghy2022-04-06 00:45
回复 3楼 rjsp
cout 如何代替 fprintf();和sprintf();
cin  如何代替 scanf();和fscanf();和sscanf();
#5
追梦人zmrghy2022-04-06 00:49
只有本站会员才能查看附件,请 登录
1