📅  最后修改于: 2023-12-03 15:29:42.991000             🧑  作者: Mango
在C++中,我们可以使用格式化I/O来控制数据的输入输出格式。格式化I/O通过控制输入输出流的格式符实现,它可以让我们更加方便地掌控数据的格式化,提高代码的可读性和易用性。
我们可以使用 printf()
函数来格式化输出,但是在C++中我们一般使用流输出(cout
或者 fprintf()
)来进行格式化输出。
我们可以使用格式符来控制输入的数据类型和格式化方式。下面是一些常用的格式符:
| 格式符 | 描述 | | --- | --- | | %d | 十进制有符号整数 | | %u | 十进制无符号整数 | | %f | 浮点数 | | %c | 单个字符 | | %s | 字符串 | | %e | 浮点数(科学计数法) | | %g | 浮点数(在指定精度下使用e或f) | | %o | 八进制整数 | | %x | 十六进制整数 | | %p | 指针 | | %n | 被输送字符的数量 |
我们可以通过在格式符前添加修饰符来影响输出的格式。下面是一些常用的修饰符:
| 修饰符 | 描述 | | --- | --- | | - | 左对齐 | | + | 显示正负号 | | # | 使用备用形式 | | 0 | 填充字符0而非空格 | | 空格 | 将正数转换为空格,负数转换为负号 | | 宽度 | 填充字段的最小宽度 | | .精度 | 浮点数精度或最大字符串长度 |
下面是一些示例演示了如何使用格式符来控制数据的输出格式:
#include <iostream>
using namespace std;
int main() {
int a = 10;
float b = 3.1415926;
double c = 1.2345678e6;
char d = 'A';
printf("%d\n", a);
printf("%10d\n", a);
printf("%-10d\n", a);
printf("%+d\n", a);
printf("%#x\n", a);
printf("%.2f\n", b);
printf("%e\n", b);
printf("%g\n", b);
printf("%.3f\n", c);
printf("%20.3f\n", c);
printf("%c\n", d);
printf("%s\n", "Hello World!");
return 0;
}
输出结果:
10
10
10
+10
0xa
3.14
3.141593e+00
3.14159
1234567.800
1234567.800
A
Hello World!
和格式化输出一样,我们也可以使用格式符来控制输入的数据类型和格式化方式。下面是一些常用的格式符:
| 格式符 | 描述 | | --- | --- | | %d | 十进制有符号整数 | | %u | 十进制无符号整数 | | %f | 浮点数 | | %c | 单个字符 | | %s | 字符串 | | %e | 浮点数(科学计数法) | | %g | 浮点数(在指定精度下使用e或f) | | %o | 八进制整数 | | %x | 十六进制整数 | | %p | 指针 | | %n | 被输送字符的数量 |
下面是一些示例演示了如何使用格式符来控制数据的输入格式:
#include <iostream>
using namespace std;
int main() {
int a;
float b;
double c;
char d;
scanf("%d", &a);
printf("a = %d\n", a);
scanf("%f", &b);
printf("b = %f\n", b);
scanf("%lf", &c);
printf("c = %lf\n", c);
scanf("%c", &d);
printf("d = %c\n", d);
char str[20];
scanf("%s", str);
printf("str = %s\n", str);
return 0;
}
输入输出示例:
10
a = 10
3.14
b = 3.140000
1.2345678e6
c = 1234567.800000
a
d =
Hello
str = Hello
在C++中,我们可以使用格式化I/O来方便地掌控数据的输入输出格式。这种方式可以大大提高代码的可读性和易用性,让我们更加方便地使用C++来编写高质量的代码!