21xrx.com
2025-04-04 17:22:21 Friday
文章检索 我的文章 写文章
C++输出格式控制符详解
2023-07-05 10:57:21 深夜i     13     0
C++ 输出格式 控制符 详解

C++作为一种广泛使用的编程语言,在程序开发过程中经常需要进行数据的输出。掌握C++的输出格式控制符可以让我们更好地输出符合要求的数据格式。

C++的输出格式控制符,也称为格式化输出,是用来控制数据输出时的格式的特殊符号。其作用是控制输出内容的对齐方式、精度、符号等参数。

在C++中,常用的输出格式控制符有以下几种:

1. \n:换行符

2. \t:制表符

3. setw(n):设置输出宽度为n个字符,不足时用空格补足。需要使用头文件

4. setprecision(n):设置输出浮点数的精度。需要使用头文件

5. setiosflags(ios::fixed):强制输出小数点后n位(n为setprecision中的参数)

6. setiosflags(ios::left):左对其输出

7. setiosflags(ios::right):右对齐输出

8. setfill(c):用字符c来填充输出宽度不足的部分。需要使用头文件

下面通过几个例子来更好地理解这些输出格式控制符的应用:

1. 控制换行和制表符

#include<iostream>
using namespace std;
int main()
{
  cout<<"Hello World!"<<endl;
  cout<<"This is\tTom."<<endl;
  return 0;
}

输出:

Hello World!
This is   Tom.

2. 设置输出宽度

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
  cout<<setw(10)<<123<<endl;
  cout<<setw(10)<<12345<<endl;
  cout<<setw(10)<<1234567<<endl;
  return 0;
}

输出:

123
   12345
  1234567

3. 设置输出浮点数的精度

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
  double a = 123.456789;
  double b = 12.34;
  cout<<setprecision(3)<<a<<endl;
  cout<<setprecision(1)<<b<<endl;
  return 0;
}

输出:

123
12.3

4. 强制输出小数点后n位

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
  double a = 123.456789;
  double b = 12.34;
  cout<<setiosflags(ios::fixed)<<setprecision(3)<<a<<endl;
  cout<<setiosflags(ios::fixed)<<setprecision(1)<<b<<endl;
  return 0;
}

输出:

123.457
12.3

5. 左对齐和右对齐

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
  cout<<setiosflags(ios::left)<<setw(10)<<"Tom";
  cout<<setiosflags(ios::right)<<setw(10)<<"20";
  cout<<endl;
  return 0;
}

输出:

Tom       20

6. 设置输出宽度不足时的填充字符

#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
  cout<<setfill('#')<<setw(10)<<123<<endl;
  cout<<setfill('*')<<setw(10)<<12345<<endl;
  cout<<setfill('-')<<setw(10)<<1234567<<endl;
  return 0;
}

输出:

#######123
*****12345
---1234567

以上就是C++中常用的输出格式控制符,通过学习这些控制符,我们可以更好地掌握数据输出的规则和方法,能够让我们更高效地满足输出数据的要求。

  
  

评论区