stringstream类用法

2024-02-20 20:08
文章标签 用法 stringstream

本文主要是介绍stringstream类用法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!



本文转自:http://blog.csdn.net/nwpu_yike/article/details/22100615

C++ stringstream 类的用法


功能一:预定的格式将程序中的数据保存在一个string 中





C++ stringstream 类是一种十分有用的类,特别是当我们需要在程序中使用字符串和数字数据的时候。要想在程序中使用 stringstream 类,我们需要在源程序文件中包含头文件include<sstream>。stringstream 对象的使用方法与cout对象的使用方法基本相同。stringstream 类提供的函数,将数字化转化为字符串。

当我们需要按预定的格式将程序中的数据保存在一个string 中的时候,可以先创建一个stringstream 对象,并通过运算符 ”<<“ 将数据传递给 stringstream 对象。(这与通过”<<“ 使用cout 对象的方法相同。)接着,我们可以通过调用stringstream 类的函数str() 将对象所包含的内容赋给一个string对象。在一下的程序中,我们先将数据传递给一个stringstream 对象,然后通过该 stringstream 对象将数值赋给一个string 对象。住:cout能使用的所有ios格式标记也可以在stringstream 对象中使用。

[C++] view plain copy print ?
  1. // 如何使用 stringstream   
  2. // 对象生成格式化的 string  
  3.   
  4. #include <iostream>  
  5. #include <string>  
  6. #include <sstream>  
  7. using namespace std;  
  8.   
  9. int main()  
  10. {  
  11.     cout << "\n Welcome to the StringStream Demo program.\n";  
  12.   
  13.     // 构建一些将在string中出现的数据变量  
  14.     // PI 精确到小数点后15位  
  15.     double pi = 3.141592653589793;  
  16.     float dollar = 1.00;  
  17.     int dozen = 12;  
  18.   
  19.     string text;  
  20.   
  21.     // 我们希望tring 的格式如下:  
  22.     // dozen适12,dollar是$1.00  
  23.     // 精确到小数点后10为pi是3.141592653589793  
  24.   
  25.     // 生成stringstream 对象  
  26.     stringstream ss;  
  27.       
  28.     // 现在像使用cout一样使用ss  
  29.   
  30.     ss << " A dozen is "<< dozen << ", a dollar is $ ";  
  31.     ss.setf(ios::fixed);  
  32.     ss.precision(2);  
  33.     ss << dollar << " and \n the value of pi to 10 places is ";  
  34.     ss.precision(10);  
  35.     ss << pi << ".";  
  36.   
  37.     // 现在将ss中的内容赋给一个string对象  
  38.     // 使用str()函数  
  39.   
  40.     text = ss.str();  
  41.     cout << "\nHere is our formatted text string:\n" << text << endl;  
  42.     // 再加入一些信息  
  43.     ss << "\ There are 2 \"+\" in C++.";  
  44.     text = ss.str();  
  45.     cout<< "\nHere is the final string:\n" << text << endl;  
  46.     return 0;  
  47. }  

运行结果图:



功能二:实现类型转换




string到 int / double 的转换

[C++] view plain copy print ?
  1. #include <iostream>  
  2. #include <string>  
  3. #include <sstream>  
  4. using namespace std;  
  5.   
  6. int main()  
  7. {  
  8.     double  rb;    
  9.     int     ri;     // 存储结果  
  10.     string  s;      // 要转化的字符串  
  11.     stringstream ss;  
  12.     s = "123.456789";  
  13.     ss << s;         // 类似 cout  
  14.     ss >> rb;        // 类似 cin  
  15.     cout.precision(10);  
  16.     cout << "string \""<< s << "\" to double object "   
  17.         << rb << endl;  
  18.     s = "654321";  
  19.     ss.clear();      //清空流  
  20.     ss << s;  
  21.     ss >> ri;  
  22.     cout << "string \""<< s << "\" to int object "   
  23.         << ri << endl;  
  24.     return 0;  
  25. }  

运行结果图:



功能三:实现任意类型转换






该功能没多少实际意义,不如static_cast 来的简单。

[C++] view plain copy print ?
  1. #include <iostream>  
  2. #include <string>  
  3. #include <sstream>  
  4. using namespace std;  
  5. template <class t1="" class="" t2="">  
  6.   
  7. int main()  
  8. {  
  9.     double  sb = 123.456;    
  10.     int     ri;     // 存储结果  
  11.     stringstream ss;  
  12.     ss << sb;  
  13.     ss >> ri;  
  14.     cout << ri;  
  15.     return 0;  
  16. }  



这篇关于stringstream类用法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/729402

相关文章

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

SpringBoot 获取请求参数的常用注解及用法

《SpringBoot获取请求参数的常用注解及用法》SpringBoot通过@RequestParam、@PathVariable等注解支持从HTTP请求中获取参数,涵盖查询、路径、请求体、头、C... 目录SpringBoot 提供了多种注解来方便地从 HTTP 请求中获取参数以下是主要的注解及其用法:1

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

Python异步编程之await与asyncio基本用法详解

《Python异步编程之await与asyncio基本用法详解》在Python中,await和asyncio是异步编程的核心工具,用于高效处理I/O密集型任务(如网络请求、文件读写、数据库操作等),接... 目录一、核心概念二、使用场景三、基本用法1. 定义协程2. 运行协程3. 并发执行多个任务四、关键

Python中yield的用法和实际应用示例

《Python中yield的用法和实际应用示例》在Python中,yield关键字主要用于生成器函数(generatorfunctions)中,其目的是使函数能够像迭代器一样工作,即可以被遍历,但不会... 目录python中yield的用法详解一、引言二、yield的基本用法1、yield与生成器2、yi

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Python库 Django 的简介、安装、用法入门教程

《Python库Django的简介、安装、用法入门教程》Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,... 目录一、Django 简介 二、Django 的安装教程 1. 创建虚拟环境2. 安装Django三、创

python中update()函数的用法和一些例子

《python中update()函数的用法和一些例子》update()方法是字典对象的方法,用于将一个字典中的键值对更新到另一个字典中,:本文主要介绍python中update()函数的用法和一些... 目录前言用法注意事项示例示例 1: 使用另一个字典来更新示例 2: 使用可迭代对象来更新示例 3: 使用

python连接sqlite3简单用法完整例子

《python连接sqlite3简单用法完整例子》SQLite3是一个内置的Python模块,可以通过Python的标准库轻松地使用,无需进行额外安装和配置,:本文主要介绍python连接sqli... 目录1. 连接到数据库2. 创建游标对象3. 创建表4. 插入数据5. 查询数据6. 更新数据7. 删除