会改变流的关键字

这些关键字会改变流的行为。每个关键字都会影响输出流(如 std::cout)的行为,确保输出按照预期的格式显示。

1. endl

  • 功能: 插入换行符并刷新流。
  • 使用: std::endl 会在输出流中插入一个换行符(等同于 '\n'),然后刷新缓冲区,确保所有数据立即输出到目标设备。
  • 示例:
    std::cout << "Hello" << std::endl << "World";
    
    输出:
    Hello
    World
    

2. ws

  • 功能: 跳过所有空白字符,直到找到另一个字符为止。
  • 使用: std::ws 通常用于输入流(如 std::cin),它会忽略输入中的所有空白字符(空格、制表符、换行符),直到遇到一个非空白字符。
  • 示例:
    std::string input;
    std::cin >> std::ws >> input;
    
    如果输入中包含空白字符,std::ws 会跳过这些空白字符,读取第一个非空白字符及其后的内容。

3. boolalpha

  • 功能: 以布尔值的文字形式(“true” 和 “false”)打印布尔值。
  • 使用: 使用 std::boolalpha,可以将布尔值以文字形式输出,而不是数字 10
  • 示例:
    std::cout << std::boolalpha << true << " " << false;
    
    输出:
    true false
    

4. hex

  • 功能: 以十六进制格式打印数字。
  • 使用: 使用 std::hex,可以将整数以十六进制格式输出。
  • 示例:
    int number = 255;
    std::cout << std::hex << number;
    
    输出:
    ff
    

5. setprecision

  • 功能: 调整打印数字的精度。
  • 使用: 使用 std::setprecision(n),可以设置浮点数的显示精度,其中 n 表示精度位数。
  • 示例:
    #include <iomanip>
    double number = 3.141592653589793;
    std::cout << std::setprecision(5) << number;
    
    输出:
    3.1416
    

综合示例

以下是一个综合示例,展示如何使用这些关键字:

#include <iostream>
#include <iomanip> // for std::setprecision

int main() {
    // 使用 endl 插入换行符并刷新流
    std::cout << "Using endl:" << std::endl;
    
    // 使用 ws 跳过空白字符
    std::cout << "Please enter a word after some spaces:" << std::endl;
    std::string word;
    std::cin >> std::ws >> word;
    std::cout << "You entered: " << word << std::endl;

    // 使用 boolalpha 打印布尔值
    std::cout << "Using boolalpha: " << std::boolalpha << true << " " << false << std::endl;
    
    // 使用 hex 以十六进制格式打印数字
    int number = 255;
    std::cout << "Using hex: " << std::hex << number << std::endl;
    
    // 使用 setprecision 调整打印数字的精度
    double pi = 3.141592653589793;
    std::cout << "Using setprecision: " << std::setprecision(5) << pi << std::endl;

    return 0;
}

输出结果

Using endl:
Please enter a word after some spaces:
(用户输入: "     hello")
You entered: hello
Using boolalpha: true false
Using hex: ff
Using setprecision: 3.1416

通过以上示例,我们展示了如何使用这些关键字来改变输出流的行为,从而达到特定的格式化输出效果。

  • 9
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值