C++ stringstream格式化输出输入详情

C++ 的 stringstream 类是一个基于字符串的流,我们可以用它进行格式化输入和输出。在使用 stringstream 进行格式化输出时,可以通过设置类似 printf 函数的格式字符串来控制输出的格式。同时,在使用 stringstream 进行格式化输入时,我们可以根据一个给定的格式字符串来解析输入的字符串数据。接下来,我将详细介绍如何使用 C++ stringstream 进行格式化输入输出。

格式化输出

下面是一个简单的代码示例,展示了如何使用 stringstream 进行格式化输出:

#include <sstream>
#include <iostream>

int main()
{
    std::stringstream ss;
    int i = 12;
    double d = 3.14;
    std::string s = "hello";
    ss << "i = " << i << ", d = " << d << ", s = " << s;
    std::cout << ss.str() << std::endl;
    return 0;
}

代码中,我们首先通过创建一个 stringstream 对象 ss 来存储要输出的数据。然后,我们依次使用串联操作符 << 将不同类型的数据加入到 ss 中,最后输出整个 ss 容器中的内容。

在这个例子中,我们输出了一个 int 类型、一个 double 类型和一个字符串类型的变量。这里,ostringstream 会自动将输入流中添加的各种类型的数据转换为字符串类型,并存储在它的内部缓冲区中。我们最后调用 stringstream 对象的 str() 方法,将缓冲区中的字符串结果返回。通过这个例子,我们可以看到 stringstream 是将不同类型的数据格式化为字符串的一个好工具。

下面是另一个简单的代码示例:

#include <sstream>
#include <iostream>

int main()
{
    std::stringstream ss;
    int i = 12;
    double d = 3.14;
    std::string s = "hello";
    ss << std::hex << i << " " << d << " " << s;
    std::cout << ss.str() << std::endl;
    return 0;
}

代码中,我们首先通过创建一个 stringstream 对象 ss 来存储要输出的数据。然后,我们使用串联操作符 << 不仅将数据加入 ss 中,而且使用 std::hex 格式标记,将 i 变量的输出格式设置为十六进制。最终结果是将 i 转化为十六进制数字来输出,另外 d 和 s 变量也被输出到了结果中。

格式化输入

下面是一个简单的代码示例,展示了如何使用 stringstream 进行格式化输入:

#include <iostream>
#include <string>
#include <sstream>

int main()
{
    std::string input = "12 3.14 hello";
    std::stringstream ss(input); // 从 input 字符串中读取数据
    int i;
    double d;
    std::string s;
    ss >> i >> d >> s; // 格式化输入 字符串到不同的类型
    if (ss.fail()) { // 判断流是否发生错误,避免输出无效数据
        std::cout << "格式化输入发生错误" << std::endl;
        return 1;
    }
    std::cout << "i = " << i << ", d = " << d << ", s = " << s << std::endl;
    return 0;
}

代码中,我们首先创建了一个字符串 input,其中包含一个 int 类型、一个 double 类型和一个 std::string 类型的数据,这些数据被空格分隔开。然后,我们使用 stringstream 来读取字符串 input 中的数据,依次将它们转换为 int、double 和 std::string 类型,并存储在变量 i、d 和 s 中。最后,我们输出这些变量的值。

另外一个简单的代码示例是:

#include <iostream>
#include <sstream>

int main()
{
    std::string input = "1.23 2.34 3.45";
    std::stringstream ss(input); // 从 input 字符串中读取数据
    double a[3];
    for (int i = 0; i < 3; ++i) {
        ss >> a[i];
        if (ss.fail()) { // 判断流是否发生错误,避免输出无效数据
            std::cout << "格式化输入发生错误" << std::endl;
            return 1;
        }
    }
    std::cout << "a[0] = " << a[0] << ", a[1] = " << a[1] << ", a[2] = " << a[2] << std::endl;
    return 0;
}

代码中,我们创建了一个包含三个浮点数的字符串 input,这些浮点数之间用空格隔开。然后,我们使用 stringstream 类从 input 字符串中读取数据,并将其存储到一个浮点数数组中。最终,我们输出了浮点数数组中存储的数据。

通过这个代码示例及上个示例,我们了解了使用 stringstream 进行格式化输入时的一些常见方法和技巧。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++ stringstream格式化输出输入详情 - Python技术站

(0)
上一篇 2023年5月23日
下一篇 2023年5月23日

相关文章

  • 电脑蓝屏DMP文件在哪? win10dmp蓝屏文件的打开方法

    电脑蓝屏DMP文件在哪? win10dmp蓝屏文件的打开方法 当我们的电脑系统遭遇蓝屏时,电脑会自动生成一个.DMP文件,该文件内含有电脑蓝屏时相关的信息和错误代码。在解决蓝屏问题时,查看.DMP文件可以帮助我们更快地找到问题所在。本文将讲解.DMP文件的查找以及如何打开.DMP文件。 查找.DMP文件位置 打开文件资源管理器,点击“电脑”(或者“此电脑”,…

    C 2023年5月24日
    00
  • C++中四种加密算法之DES源代码

    下面是详细讲解C++中四种加密算法之DES源代码的完整攻略。 什么是DES算法 DES算法全称为数据加密标准(Data Encryption Standard),是一种使用密钥加密的对称加密算法。该算法是目前应用最广泛的加密算法之一,被广泛应用于各种安全领域。 DES算法的源代码 以下是C++实现的DES算法源代码: #include <iostrea…

    C 2023年5月23日
    00
  • C连接Mysql数据库代码

    当我们需要在C程序中使用MySQL数据库时,我们需要连接MySQL数据库。下面是将C程序连接MySQL数据库的完整攻略。 步骤1:安装MySQL C API 在C程序中使用MySQL数据库,我们需要安装MySQL C API。MySQL提供了C API开发包,我们可以到MySQL官方网站上下载。 步骤2:连接MySQL数据库 连接MySQL数据库前,需要先初…

    C 2023年5月23日
    00
  • QT中对Mat类的一些操作详解

    QT中对Mat类的一些操作详解 Mat类简介 Mat类是OpenCV图像处理库中常用的一个类,它可以用来存储图像数据信息,并提供了很多对图像进行操作的方法。在QT中,可以使用OpenCV库中的Mat类来进行图像处理操作。 Mat类的创建与初始化 Mat类提供了很多构造函数,可以根据不同的参数来创建不同的Mat对象。下面是一些常用的构造函数: // 创建一个空…

    C 2023年5月23日
    00
  • Cubase Elements 9怎么安装?Cubase Elements 9破解安装教程

    Cubase Elements 9是一款专业音乐创作软件,安装和破解过程需要注意一些细节。下面是详细的安装和破解教程。 下载Cubase Elements 9安装包 首先需要从官方网站或其他可靠下载站点下载Cubase Elements 9的安装包。这个过程需要保证下载的是完整的安装包,比如对于Windows系统,下载的文件应该是一个带有完整的安装程序的ex…

    C 2023年5月22日
    00
  • Win11使用USB或type-c耳机音量默认100%怎么解决?

    当在 Windows 11 中使用 USB 或 Type-C 耳机时,可能会发现音量默认为 100% ,这可能会给你带来一些不便。这种情况可以通过以下方式解决: 1. 禁用默认通讯设备 Windows 中默认会将通讯设备(如耳机麦克风)设置为默认设备,这可能会导致音量设置失效。解决方法是: 在任务栏上右键单击音量图标,选择““声音”选项。 在弹出的“声音”设…

    C 2023年5月23日
    00
  • C语言实现简易文本编译器

    C语言实现简易文本编译器 本攻略将介绍如何使用C语言实现一个简易文本编译器。编译器会将输入的文本文件转换为标准的HTML格式并输出到文件中。 准备工作 在开始之前,你需要安装一个C语言编译器,例如gcc或clang,并确保在你的系统上运行正常。你也需要掌握基本的C语言语法。 构建编译器 首先,我们需要将我们的编译器分为两个部分:词法分析器和语法分析器。 词法…

    C 2023年5月23日
    00
  • C语言中system()函数的用法总结

    下面我将详细讲解C语言中system()函数的用法总结。 1. system函数简介 system()函数是C语言中的一种库函数,它可以用来在程序中执行特定的外部命令,比如在Windows下运行cmd命令,执行变量设置等。 system()函数的函数原型为: int system(const char *command); 其中,command参数表示要执行…

    C 2023年5月23日
    00
合作推广
合作推广
分享本页
返回顶部