问题标签 [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.

0 投票
8 回答
80964 浏览

c++ - istringstream、ostringstream 和 stringstream 有什么区别?/ 为什么不在每种情况下都使用 stringstream?

我什么时候使用,std::istringstream为什么不应该只在每个场景中使用(是否存在任何运行时性能问题?)。std::ostringstreamstd::stringstreamstd::stringstream

最后,这有什么不好的(而不是使用流):

0 投票
5 回答
8842 浏览

c++ - 使用 stringstream 获取字节值

我有这个(不正确的)示例代码,用于从 stringstream 中获取一个值并将其存储在一个字节大小的变量中(它需要在一个单字节 var 中,而不是 int 中):

我运行它时的输出是 49,这不是我想看到的。显然,这被视为 char 而不是简单的数值。当转换为 int 时,让 c 保持 1 而不是 49 的最 C++ 方式是什么?

谢谢!

0 投票
1 回答
2474 浏览

c++ - stringstream 在无符号类型中“流式传输”负值失败?

我在使用 gcc4.4 的 Ubuntu 10.04 中遇到了同样的问题,相同的代码在使用 gcc4.1 的 RH 5.5 上运行良好

没有失败,我已经找到了这个:

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39802

它声明它在 gcc4.1 中得到纠正,不确定是否该错过的行为(除非我遗漏了某些东西)与相同的问题有关。

0 投票
2 回答
23018 浏览

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>&) 访问。

0 投票
1 回答
191 浏览

c++ - 从读取的文件中拆分单词

我正在尝试将文本文件的内容读入类的属性中。该文件的结构使得每一行都包含该类的一个对象所需的所有信息。一行可能如下所示:

我一直在做的是将文件中的行读取到带有 的流中getline(),在这样的函数中:

TycDat类的名称在哪里,target我要存储它的 Vector 是哪里,以及source已经指向该文件的文件流是哪里。

在构造函数中,TycDat我创建了一个std::istringstreamstd::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寻找与 不同的值' ',然后使用>>运算符....

好吧,我会试试我猜,让你知道它是怎么回事。谢谢您的帮助。任何其他意见表示赞赏。写完这一切后,我对删除问题感到难过。

0 投票
4 回答
4533 浏览

c++ - 在 C++ 中使用 stringstream 和 int 变量来验证输入是否为 int


此代码应该通过尝试将 my_string 的内容放入 ft​​ 来测试输入是否为整数。如果我输入字母而不是整数,则会收到错误消息“输入无效!请重试”,这就是应该发生。问题是,在我收到该消息一次后,即使下一个输入有效,我也会为之后的每个输入获得它。


有人建议我应该使用std::cin.clear(); 清除错误标志。我尝试将它放在 getline() 之前,但并没有改变问题。我用错了吗?

0 投票
4 回答
15520 浏览

c++ - 用 ostringstream 对浮点数进行四舍五入

我有一个关于使用 ostringstream 从浮点数转换为 C++ 字符串的问题。这是我的台词:

当 t 的值为 -0.89999 时,它会四舍五入到 -0.9,但是当它的值是 0.0999 或小于 1.754e-7 时,它只会在不四舍五入的情况下打印。什么可以解决这个问题。

0 投票
3 回答
11770 浏览

c++ - 如何读取具有动态大小的字符串流?

我想尝试使用 stringstream 进行分配,但我对它的工作原理有点困惑。我进行了快速搜索,但找不到任何可以回答我问题的东西。

假设我有一个动态大小的流,我怎么知道何时停止写入变量?

我的输出是:

我不确定为什么最后会得到额外的“c”,尤其是因为 _M_in_cur = 0x1001000d7 ""

0 投票
2 回答
14410 浏览

c++ - std::stringstream 如何在 operator< 中处理 wchar_t*

鉴于以下代码段无法编译:

std::stringstream ss;
ss << std::wstring(L"abc");

我也不认为这个会:

std::stringstream ss;
ss << L"abc";

鉴于以下代码段无法编译:

我也不认为这个会:

但它确实(至少在 VC++ 上)。我猜这是由于以下ostream::operator<<过载:

如果我无意中混合了字符类型,这是否有可能悄悄地破坏我的代码?


如果我无意中混合了字符类型,这是否有可能悄悄地破坏我的代码?

一句话:是的,而且我知道没有解决方法。您只会看到指针值的表示,而不是字符串,因此这不是潜在的崩溃或未定义的行为,只是输出不是您想要的。

0 投票
2 回答
1664 浏览

c++ - num_get facet 和 stringstream 转换为布尔值 - 初始化布尔值失败?

我继承了一个将字符串转换为数值的模板,并希望将其应用于转换为boolean。我对 stringstream 和 locale 类不是很有经验。我似乎确实有一些奇怪的行为,我想知道是否有人可以向我解释一下?

这工作正常,直到我尝试布尔转换

我花了一些时间来追踪问题。我已确认语言环境的 truename() 返回“true”。

问题似乎与变量num的初始化有关。我可以将模板更改为此并且它可以工作:

为什么它有效?我接受用 '0' 初始化 bool 是错误的,但是为什么这会导致SStream>>num转换失败?