stringstream 到底做了什么?

2023-12-02

我从昨天开始尝试学习 C++,我正在使用这个文档:http://www.cplusplus.com/files/tutorial.pdf(第 32 页)。我在文档中找到了一段代码并运行了它。我尝试输入价格为 5.5 卢比,数量为整数,但输出为 0。 我尝试输入5.5和6,输出是正确的。

// stringstreams
#include <iostream> 
#include <string> 
#include <sstream> 

using namespace std; 

int main () 
{ 
  string mystr; 
  float price = 0; 
  int quantity = 0; 

  cout << "Enter price: "; 
  getline (cin,mystr); 
  stringstream(mystr) >> price; 
  cout << "Enter quantity: "; 
  getline (cin,mystr); 
  stringstream(mystr) >> quantity; 
  cout << "Total price: " << price*quantity << endl; 
  return 0; 
}

mystring 命令到底有什么作用?引用自文档:

“在这个例子中,我们从标准输入获取数值 间接地。而不是直接从数据中提取数值 标准输入,我们将标准输入(cin)中的行放入 字符串对象(mystr),然后我们从其中提取整数值 将此字符串转换为 int 类型的变量(数量)。”

我的印象是该函数将获取字符串的组成部分并将其用作输入。


有时候使用stringstream在字符串和其他数值类型之间进行转换是非常方便的。的用法stringstream类似于iostream,所以这不是学习的负担。

字符串流既可用于读取字符串,也可用于将数据写入字符串。它主要使用字符串缓冲区,但没有真正的 I/O 通道。

stringstream类的基本成员函数是

  • str(),它以字符串类型返回其缓冲区的内容。

  • str(string),它将缓冲区的内容设置为字符串参数。

这是如何使用字符串流的示例。

ostringstream os;
os << "dec: " << 15 << " hex: " << std::hex << 15 << endl;
cout << os.str() << endl;

结果是dec: 15 hex: f.

istringstream或多或少有相同的用法。

总而言之,stringstream 是一种便捷的方法像独立 I/O 设备一样操作字符串.

仅供参考,类之间的继承关系是:

string stream classes

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

stringstream 到底做了什么? 的相关文章

  • boost::asio + std::future - 关闭套接字后访问冲突

    我正在编写一个简单的 TCP 客户端来发送和接收单行文本 异步操作由 std future 处理 以便于超时阻塞查询 不幸的是 我的测试应用程序在破坏服务器对象时因访问冲突而崩溃 这是我的代码 TCP客户端 hpp ifndef TCPCL
  • 如何在 C++ 中的文件末尾添加数据?

    我已按照网上的说明进行操作 此代码应该将输入添加到文件 数据库 的末尾 但当我检查时 数据会覆盖现有数据 请帮忙 这是我的代码 int main string name string address string handphone cou
  • 使用 Unity 在构造函数中使用属性依赖注入

    好的 我在基类中定义了一个依赖属性 我尝试在其派生类的构造函数内部使用它 但这不起作用 该属性显示为 null Unity 在使用 container Resolve 解析实例后解析依赖属性 我的另一种选择是将 IUnityContaine
  • VB.NET 相当于 C# 属性简写吗?

    是否有与 C 等效的 VB NET public string FirstName get set 我知道你能做到 Public Property name As String Get Return name ToString End Ge
  • std::cout 和 std::wcout 有什么区别?

    在c 中 有什么区别std cout and std wcout 它们都控制流缓冲区的输出或将内容打印到控制台 或者它们只是相似吗 它们作用于不同的字符类型 std cout uses char作为字符类型 std wcout uses w
  • Unix网络编程澄清

    我正在翻阅这本经典书籍Unix网络编程 https rads stackoverflow com amzn click com 0139498761 当我偶然发现这个程序时 第 6 8 节 第 179 180 页 include unp h
  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 在新的浏览器进程中打开 URL

    我需要在新的浏览器进程中打开 URL 当浏览器进程退出时我需要收到通知 我当前使用的代码如下 Process browser new Process browser EnableRaisingEvents true browser Star
  • 存储来自其他程序的事件

    我想将其他应用程序的事件存储在我自己的应用程序中 事件示例 打开 最小化 Word 或打开文件时 这样的事可能吗 运行程序 http msdn microsoft com en us library ms813609 aspx and 打开
  • 在 C# 中循环遍历文件文件夹的最简单方法是什么?

    我尝试编写一个程序 使用包含相关文件路径的配置文件来导航本地文件系统 我的问题是 在 C 中执行文件 I O 这将是从桌面应用程序到服务器并返回 和文件系统导航时使用的最佳实践是什么 我知道如何谷歌 并且找到了几种解决方案 但我想知道各种功
  • 生成(非常)大的非重复整数序列而不进行预洗牌

    背景 我编写了一个简单的媒体客户端 服务器 我想生成一个不明显的时间值 随从客户端到服务器的每个命令一起发送 时间戳中将包含相当多的数据 纳秒分辨率 即使它不是真正准确 因为现代操作系统中计时器采样的限制 等 我想做的 在 Linux 上
  • C# Dns.GetHostEntry 不返回连接到 WiFi 的移动设备的名称

    我有一个 C 中的 Windows 窗体应用程序 我试图获取列表中所有客户端的主机名 下面给出的是 ra00l 来自此链接的代码示例 GetHostEntry 非常慢 https stackoverflow com questions 99
  • 批量更新 SQL Server C#

    我有一个 270k 行的数据库 带有主键mid和一个名为value 我有一个包含中值和值的文本文件 现在我想更新表格 以便将每个值分配给正确的中间值 我当前的方法是从 C 读取文本文件 并为我读取的每一行更新表中的一行 必须有更快的方法来做
  • 私有模板函数

    我有一堂课 C h class C private template
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • memset 未填充数组

    u32 iterations 5 u32 ecx u32 malloc sizeof u32 iterations memset ecx 0xBAADF00D sizeof u32 iterations printf 8X n ecx 0
  • 使用 GhostScript.NET 打印 PDF DPI 打印问题

    我在用GhostScript NET http ghostscriptnet codeplex com打印 PDF 当我以 96DPI 打印时 PDF 打印效果很好 但有点模糊 如果我尝试以 600DPI 打印文档 打印的页面会被极大地放大
  • 防止在工厂方法之外实例化对象

    假设我有一个带有工厂方法的类 class A public static A newA Some code logging return new A 是否可以使用 a 来阻止此类对象的实例化new 那么工厂方法是创建对象实例的唯一方法吗 当
  • 如何使用 Word Automation 获取页面范围

    如何使用办公自动化找到 Microsoft Word 中第 n 页的范围 似乎没有 getPageRange n 函数 并且不清楚它们是如何划分的 这就是您从 VBA 执行此操作的方法 转换为 Matlab COM 调用应该相当简单 Pub
  • 如何正确使用 std::condition_variable?

    我很困惑conditions variables以及如何 安全 使用它们 在我的应用程序中 我有一个创建 gui 线程的类 但是当 gui 是由 gui 线程构造时 主线程需要等待 情况与下面的函数相同 主线程创建互斥体 锁和conditi

随机推荐

  • Eclipse PyDev 抛出虚假错误

    我昨天更新了 PyDev Eclipse 现在它告诉我没有 name其他保留字 内置函数无效 但脚本运行良好 我在这个论坛上读到 问题涉及错误导入内置程序 我尝试过更改解释器并重新添加它 但没有成功 有人可以帮我吗 错误 未定义的变量mai
  • glut - 按住某个键

    我有一些基本代码来使用 glut 收集按键向上和按键按下事件 如果我按住一个键 我会连续触发事件 下 上 下 上 下 上 而不是预期的向下 开始时一次 和向上 一次 最后 include
  • 使用 HTML 按钮调用 JavaScript 函数

    我正在尝试使用 HTML 按钮来调用 JavaScript 函数 这是代码
  • Rails 3.1:引擎与可安装应用程序

    有人可以帮助我理解 Rails 引擎和可安装应用程序之间的区别吗 在 Rails 3 1 中 您可以使用 rails new 插件 创建任一插件 命令 rails plugin new forum full Engine rails plu
  • 非常基础的 PHP 和 Mysql

    背景 我更像是一名设计师而不是程序员 但我已经破解了许多开源 CMS Drupal Joomla Wordpress 的模板 我想从头开始了解php和mysql数据库的关系 假设我本地有一个工作数据库和 php 引擎 连接到数据库并创建表的
  • 为什么 Magento 这么慢? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 Magento 通常都这么
  • cURL 在 PHP 7 上非常慢,但在 PHP 5 上则不然

    对于我来说 使用 PHP7 0 11 时 cURL 似乎比仅从命令行运行请求或在 PHP5 6 24 中运行时慢得多 我正在使用以下代码对其进行测试 curl curl init curl setopt curl CURLOPT URL h
  • 我们可以使用 Hyperledger 创建不可替代的代币吗?

    根据 ERC 721 ERC 721 是一个免费 开放的标准 描述了如何构建 以太坊区块链上不可替代或独特的代币 虽然大多数 代币是可替代的 每个代币都与其他代币相同 ERC 721 代币都是独一无二的 是否有关于像超级账本这样的许可区块链
  • 将 Javascript 数组中的连续重复值分组

    我有这个数组 var arr a a b b b c d d a a a 我希望这个输出 a a b b b c d d a a a 观察 请注意 我不想对所有重复值进行分组 仅连续重复值 谁能帮我 解决方案与Array prototype
  • 从 SwiftUI 上的部分列表中删除项目

    Overview 我正在使用核心数据做一个简单的应用程序我有两个实体用户和地区该应用程序按地区显示用户列表问题是在删除操作中 如果我尝试删除第二个部分 则列表会从第一个部分中删除用户用户从第二部分删除第二个用户从第一部分 我认为索引集发送该
  • Resteasy安全拦截器-如何在拦截器内获取客户端IP地址?

    我已经实现了一个拦截器 通过以下注释对客户端 IP 地址进行安全检查 提供者 服务器拦截器 优先级 安全 preprocess 方法采用参数 HttpRequest 请求 ResourceMethod 方法 有没有办法从 Resteasy
  • PHP 文件上传 - CGI 上的内存处理

    我想知道 PHP 如何处理文件上传 我是read文件上传将被分割成块 并在上传完成后组装 这个事实有证实吗 这将有助于了解文件上传的处理和设置 mod php 或 CGI 的处理相同吗 mod php 与 Apache 的联系更加紧密 CG
  • Rails 在患有 STI 时设计登记表

    我不知道如何创建工人和协会 所以我能够将它们联系在一起 我在用户中有一个类型列 这是我的表单 http localhost 3000 workers sign up h2 Create Worker h2 p br p p b b p
  • 我是否需要付费计划才能在 firebase 功能上使用 recaptcha?

    我创建了一个 firebase 函数来进行网站的 recapcha 验证 但我收到了人们在拥有 Spark 免费 计划并尝试向外部 api 发送请求时遇到的错误 这是我的错误 Firebase 对所有 http 请求执行 ENOTFOUND
  • python的“set”稳定吗?

    这个问题是在回答另一个SO问题时出现的 there 当我对 python 集进行多次迭代 在调用之间不更改它 时 我可以假设它总是以相同的顺序返回元素吗 如果不是 改变顺序的理由是什么 是确定性的还是随机的 或者定义的实现 当我重复调用同一
  • 如何使用 Sass 获取动态列表中的项目数?

    ul li li li li li li li li ul 是否可以使用 Sass 获取动态列表的最后一项的 n 值 就像使用 each 或 for 语句计算 ul 中的项目数一样 萨斯号only编译为 CSS 它永远不会发送到浏览器 它不
  • hdf5 Java 库入门

    我正在用 jhdf5 学习 HDF5 我正在 MAC OS X 上工作 酿造安装hdf5 这会将 hdf5 1 10 安装在 usr local Cellar hdf5 中 复制此文件并将其放入 gradle 项目中 https suppo
  • SCons 在 Windows 中启动超慢

    长期以来 我在使用 SCons 进行构建时一直饱受启动时间过长的困扰 在我的旧工作笔记本电脑上 构建最基本的 hello world 示例可能需要长达 60 秒的时间 我刚刚收到一台新笔记本电脑 所以我有机会进一步调查这一点 我们的笔记本电
  • 将 LINQ 表达式谓词从一种类型更改为另一种类型

    我有两个不相关的课程 一种作为 API 公开 另一种由 3rd 方 API 在内部使用 Entity 从我们的 API 公开 而 EntityProvider 来自第 3 方程序集 class Entity public A get set
  • stringstream 到底做了什么?

    我从昨天开始尝试学习 C 我正在使用这个文档 http www cplusplus com files tutorial pdf 第 32 页 我在文档中找到了一段代码并运行了它 我尝试输入价格为 5 5 卢比 数量为整数 但输出为 0 我