• C++编程语言中stringstream类介绍


    转载自:https://blog.csdn.net/liitdar/article/details/82598039

    本文主要介绍 C++ 编程语言中 stringstream 类的相关知识,同时通过示例代码介绍 stringstream 类的使用方法。
    1 概述

    <sstream> 定义了三个类:istringstream、ostringstream 和 stringstream,分别用来进行流的输入、输出和输入输出操作。本文以 stringstream 为主,介绍流的输入和输出操作。

    <sstream> 主要用来进行数据类型转换,由于 <sstream> 使用 string 对象来代替字符数组(snprintf 方式),避免了缓冲区溢出的危险;而且,因为传入参数和目标对象的类型会被自动推导出来,所以不存在错误的格式化符号的问题。简单说,相比 C 编程语言库的数据类型转换,<sstream> 更加安全、自动和直接。
    2 示例代码
    2.1 数据类型转换

    这里展示一份示例代码,介绍将 int 类型转换为 string 类型的过程。

    示例代码(stringstream_test1.cpp)的内容如下:

    #include <string>
    #include <sstream>
    #include <iostream>
    #include <stdio.h>
     
    using namespace std;
     
    int main()
    {
        stringstream sstream;
        string strResult;
        int nValue = 1000;
     
        // 将int类型的值放入输入流中
        sstream << nValue;
        // 从sstream中抽取前面插入的int类型的值,赋给string类型
        sstream >> strResult;
     
        cout << "[cout]strResult is: " << strResult << endl;
        printf("[printf]strResult is: %s\n", strResult.c_str());
     
        return 0;
    }

    2.2 多个字符串拼接

    本示例介绍在 stringstream 中存放多个字符串,实现多个字符串拼接的目的(其实完全可以使用 string 类实现),同时,介绍 stringstream 类的清空方法。

    示例代码(stringstream_test2.cpp)的内容如下:

    #include <string>
    #include <sstream>
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
        stringstream sstream;
     
        // 将多个字符串放入 sstream 中
        sstream << "first" << " " << "string,";
        sstream << " second string";
        cout << "strResult is: " << sstream.str() << endl;
     
        // 清空 sstream
        sstream.str("");
        sstream << "third string";
        cout << "After clear, strResult is: " << sstream.str() << endl;
     
        return 0;
    }

    从上述代码执行结果能够知道:

        可以使用 str() 方法,将 stringstream 类型转换为 string 类型;
        可以将多个字符串放入 stringstream 中,实现字符串的拼接目的;
        如果想清空 stringstream,必须使用 sstream.str(""); 方式;clear() 方法适用于进行多次数据类型转换的场景。详见示例 2.3。

    2.3 stringstream的清空

    清空 stringstream 有两种方法:clear() 方法以及 str("") 方法,这两种方法对应不同的使用场景。str("") 方法的使用场景,在上面的示例中已经介绍过了,这里介绍 clear() 方法的使用场景。

    示例代码(stringstream_test3.cpp)的内容如下:

    #include <sstream>
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
        stringstream sstream;
        int first, second;
     
        // 插入字符串
        sstream << "456";
        // 转换为int类型
        sstream >> first;
        cout << first << endl;
     
        // 在进行多次类型转换前,必须先运行clear()
        sstream.clear();
     
        // 插入bool值
        sstream << true;
        // 转换为int类型
        sstream >> second;
        cout << second << endl;
     
        return 0;
    }
  • 相关阅读:
    MySQL 数据库改名的简单方法
    Apache启用Gzip压缩
    安全的Web主机iptables防火墙脚本
    iptables
    Linux服务器维护统计连接数查看外部IP
    面试相关(新)
    hdu 4946 Area of Mushroom (凸包,去重点,水平排序,留共线点)
    凸包全解
    eclipse (android环境搭建)
    wins 软件安装
  • 原文地址:https://www.cnblogs.com/zhongllmm/p/16018883.html
Copyright © 2020-2023  润新知