📜  C ++中的格式化I O(1)

📅  最后修改于: 2023-12-03 15:29:42.991000             🧑  作者: Mango

C++中的格式化I/O

简介

在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++来编写高质量的代码!