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

相关文章

JDK21对虚拟线程的几种用法实践指南

《JDK21对虚拟线程的几种用法实践指南》虚拟线程是Java中的一种轻量级线程,由JVM管理,特别适合于I/O密集型任务,:本文主要介绍JDK21对虚拟线程的几种用法,文中通过代码介绍的非常详细,... 目录一、参考官方文档二、什么是虚拟线程三、几种用法1、Thread.ofVirtual().start(

Java8 Collectors.toMap() 的两种用法

《Java8Collectors.toMap()的两种用法》Collectors.toMap():JDK8中提供,用于将Stream流转换为Map,本文给大家介绍Java8Collector... 目录一、简单介绍用法1:根据某一属性,对对象的实例或属性做映射用法2:根据某一属性,对对象集合进行去重二、Du

Python中isinstance()函数原理解释及详细用法示例

《Python中isinstance()函数原理解释及详细用法示例》isinstance()是Python内置的一个非常有用的函数,用于检查一个对象是否属于指定的类型或类型元组中的某一个类型,它是Py... 目录python中isinstance()函数原理解释及详细用法指南一、isinstance()函数

Python中的sort方法、sorted函数与lambda表达式及用法详解

《Python中的sort方法、sorted函数与lambda表达式及用法详解》文章对比了Python中list.sort()与sorted()函数的区别,指出sort()原地排序返回None,sor... 目录1. sort()方法1.1 sort()方法1.2 基本语法和参数A. reverse参数B.

vue监听属性watch的用法及使用场景详解

《vue监听属性watch的用法及使用场景详解》watch是vue中常用的监听器,它主要用于侦听数据的变化,在数据发生变化的时候执行一些操作,:本文主要介绍vue监听属性watch的用法及使用场景... 目录1. 监听属性 watch2. 常规用法3. 监听对象和route变化4. 使用场景附Watch 的

Java Instrumentation从概念到基本用法详解

《JavaInstrumentation从概念到基本用法详解》JavaInstrumentation是java.lang.instrument包提供的API,允许开发者在类被JVM加载时对其进行修改... 目录一、什么是 Java Instrumentation主要用途二、核心概念1. Java Agent

Java 中 Optional 的用法及最佳实践

《Java中Optional的用法及最佳实践》在Java开发中,空指针异常(NullPointerException)是开发者最常遇到的问题之一,本篇文章将详细讲解Optional的用法、常用方... 目录前言1. 什么是 Optional?主要特性:2. Optional 的基本用法2.1 创建 Opti

Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧

《Python函数的基本用法、返回值特性、全局变量修改及异常处理技巧》本文将通过实际代码示例,深入讲解Python函数的基本用法、返回值特性、全局变量修改以及异常处理技巧,感兴趣的朋友跟随小编一起看看... 目录一、python函数定义与调用1.1 基本函数定义1.2 函数调用二、函数返回值详解2.1 有返

Python中logging模块用法示例总结

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

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

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