问题标签 [stringstream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - istringstream、ostringstream 和 stringstream 有什么区别?/ 为什么不在每种情况下都使用 stringstream?
我什么时候使用,std::istringstream
为什么不应该只在每个场景中使用(是否存在任何运行时性能问题?)。std::ostringstream
std::stringstream
std::stringstream
最后,这有什么不好的(而不是使用流):
c++ - 使用 stringstream 获取字节值
我有这个(不正确的)示例代码,用于从 stringstream 中获取一个值并将其存储在一个字节大小的变量中(它需要在一个单字节 var 中,而不是 int 中):
我运行它时的输出是 49,这不是我想看到的。显然,这被视为 char 而不是简单的数值。当转换为 int 时,让 c 保持 1 而不是 49 的最 C++ 方式是什么?
谢谢!
c++ - stringstream 在无符号类型中“流式传输”负值失败?
我在使用 gcc4.4 的 Ubuntu 10.04 中遇到了同样的问题,相同的代码在使用 gcc4.1 的 RH 5.5 上运行良好
没有失败,我已经找到了这个:
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39802
它声明它在 gcc4.1 中得到纠正,不确定是否该错过的行为(除非我遗漏了某些东西)与相同的问题有关。
c++ - 如何在 C++ 中从一个字符串流对象复制到另一个?
我有std::stringstream
对象ss1
。现在,我想从这个副本创建另一个副本。
我试试这个:
或者:
两者都不起作用
错误信息是这样的:
std::ios::basic_ios(const std::ios &) 不能从 bsl::basic_stringstream, bsl::allocator>::basic_stringstream(const bsl::basic_stringstream, bsl::allocator>&) 访问。
c++ - 从读取的文件中拆分单词
我正在尝试将文本文件的内容读入类的属性中。该文件的结构使得每一行都包含该类的一个对象所需的所有信息。一行可能如下所示:
我一直在做的是将文件中的行读取到带有 的流中getline()
,在这样的函数中:
TycDat
类的名称在哪里,target
我要存储它的 Vector 是哪里,以及source
已经指向该文件的文件流是哪里。
在构造函数中,TycDat
我创建了一个std::istringstream
与std::string
参数关联的对象,line
并使用>>
运算符将值按顺序读取到属性中。这在大多数情况下都有效。我必须创建一些char
数组才能读取其中的一些,例如hd 210531
对应于操作员将拆分的数组。string
>>
我真正的问题来自最后一个部分,在示例中为8.80 P F5 5 6440
. 它说 F5 实际上是两个值,一个字母和一个数字,我需要将它们分别存储为 char 和 int。此外,最后的 int 可能并不总是存在。
我现在正在做的是,在正确阅读 P 之后:
我不喜欢那样,主要是因为我正在制作一个新的string
. 但我不知道如何让它正常工作。问题在于将单词分开(我想我可以ignore
一个字符然后使用TClass = iss.get()
get TClass
,但我不知道如何在读入之前检查下一个值是否存在。
嗯,我可以peek
寻找与 不同的值' '
,然后使用>>
运算符....
好吧,我会试试我猜,让你知道它是怎么回事。谢谢您的帮助。任何其他意见表示赞赏。写完这一切后,我对删除问题感到难过。
c++ - 在 C++ 中使用 stringstream 和 int 变量来验证输入是否为 int
此代码应该通过尝试将 my_string 的内容放入 ft 来测试输入是否为整数。如果我输入字母而不是整数,则会收到错误消息“输入无效!请重试”,这就是应该发生。问题是,在我收到该消息一次后,即使下一个输入有效,我也会为之后的每个输入获得它。
有人建议我应该使用std::cin.clear(); 清除错误标志。我尝试将它放在 getline() 之前,但并没有改变问题。我用错了吗?
c++ - 用 ostringstream 对浮点数进行四舍五入
我有一个关于使用 ostringstream 从浮点数转换为 C++ 字符串的问题。这是我的台词:
当 t 的值为 -0.89999 时,它会四舍五入到 -0.9,但是当它的值是 0.0999 或小于 1.754e-7 时,它只会在不四舍五入的情况下打印。什么可以解决这个问题。
c++ - 如何读取具有动态大小的字符串流?
我想尝试使用 stringstream 进行分配,但我对它的工作原理有点困惑。我进行了快速搜索,但找不到任何可以回答我问题的东西。
假设我有一个动态大小的流,我怎么知道何时停止写入变量?
我的输出是:
我不确定为什么最后会得到额外的“c”,尤其是因为 _M_in_cur = 0x1001000d7 ""
c++ - num_get facet 和 stringstream 转换为布尔值 - 初始化布尔值失败?
我继承了一个将字符串转换为数值的模板,并希望将其应用于转换为boolean。我对 stringstream 和 locale 类不是很有经验。我似乎确实有一些奇怪的行为,我想知道是否有人可以向我解释一下?
这工作正常,直到我尝试布尔转换
我花了一些时间来追踪问题。我已确认语言环境的 truename() 返回“true”。
问题似乎与变量num的初始化有关。我可以将模板更改为此并且它可以工作:
为什么它有效?我接受用 '0' 初始化 bool 是错误的,但是为什么这会导致SStream>>num
转换失败?