21xrx.com
2024-09-19 23:59:10 Thursday
登录
文章检索 我的文章 写文章
如何在C++中对齐输出
2023-07-02 13:09:51 深夜i     --     --
C++ 对齐 输出 setw left right

对于C++初学者来说,往往会遇到输出对齐的问题。针对这个问题,本文将提供一些简单易懂的方法来实现输出对齐。

方法一:setw函数

在C++中,可以通过设置字段宽度(field width)来实现对齐输出。为此,C++提供了一个setw函数(即set width),可以用来设置流中下一个输出字段的宽度。下面是一个使用setw函数实现对齐输出的例子:


#include <iostream>

#include <iomanip> // 包含setw函数的头文件

using namespace std;

int main() {

  int num1 = 20, num2 = 30, num3 = 400;

  cout << setw(10) << num1 << setw(10) << num2 << setw(10) << num3 << endl;

  return 0;

}

在此例子中,setw(10)用来设置输出字段宽度为10个字符。例如,第一个输出num1,输出字段宽度为10,如果num1的位数不足10位,则自动在左边用空格填充,输出结果如下:


    20    30    400

方法二:fill函数

C++中,fill函数可以在字符串输出时填充指定字符。默认情况下,fill函数填充空格符。如果我们想用其他字符填充,可以通过调用setfill函数进行设置。

下面是一个使用fill函数实现对齐输出的例子:


#include <iostream>

#include <iomanip> // 包含setw和setfill函数的头文件

using namespace std;

int main() {

  int num1 = 20, num2 = 30, num3 = 400;

  cout << setfill('*') << setw(10) << num1 << setw(10) << num2 << setw(10) << num3 << endl;

  return 0;

}

在此例子中,setfill('*')将输出字段用'*'填充,输出结果如下:


********20********30*******400

方法三:sstream函数

C++中,stringstream函数可以将符合要求的输出结果转化成字符串输出,然后再通过字符串的处理方法实现对齐输出。

下面是一个使用stringstream函数实现对齐输出的例子:


#include <iostream>

#include <sstream> // 包含stringstream函数的头文件

using namespace std;

string fill_blank(int num, int len) {

  stringstream ss;

  ss << num;

  string s = ss.str();

  return string(len - s.length(), ' ') + s;

}

int main() {

  int num1 = 20, num2 = 30, num3 = 400;

  cout << fill_blank(num1, 10) << fill_blank(num2, 10) << fill_blank(num3, 10) << endl;

  return 0;

}

在此例子中,fill_blank函数用于将输出转成字符串,并根据所需的宽度来填充输出。输出结果如下:


    20    30    400

总结

本文介绍了C++中实现对齐输出的三种方法:setw函数、fill函数以及sstream函数。初学者可以根据自己的需要选择合适的方法来实现输出对齐。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复