问题标签 [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 投票
2 回答
2398 浏览

c++ - 字符串流提取不起作用

我似乎在从字符串流中提取数据时遇到问题。我提取的开始似乎缺少前两个字符。

我有类似于以下代码的内容:

我有一个问题,当我从“ssnew”读取数据时使用提取运算符时,它似乎跳过了前两个字符。例如,在调试器中,显示字符串流具有“001.111.62.2003...等”。但是,在第一个“ssnew >> bValid”之后,bValid 变为“true”,dValue 变为“0.111”,dTime 变为“0.62”,表明流中的前两个零被忽略。为什么它不是从流的开头开始?

干杯,赛斯

0 投票
4 回答
595 浏览

c++ - 为什么这种转换不起作用?

下面是我的功能。我称之为

和 RHS = "15\t// 评论"

它返回假,我除了 v=15 的真。我该如何解决?

0 投票
5 回答
176824 浏览

c++ - stringstream、string 和 char* 转换混淆

我的问题可以归结为,从stringstream.str().c_str()内存中返回的字符串在哪里,为什么不能分配给 a const char*

此代码示例将比我更好地解释它

stringstream.str().c_str()可以分配给 a的假设const char*导致了我花了一段时间才找到的错误。

对于奖励积分,任何人都可以解释为什么cout

正确打印字符串?

我在 Visual Studio 2008 中编译。

0 投票
2 回答
2688 浏览

c++ - stringstream临时ostream返回问题

我正在创建一个包含以下部分的记录器:

带着这样的想法:

这一切都按预期工作,但是当我这样做时:

这没用:

导致“格式”包含垃圾数据而不是通常的正确字符串。

我认为这是因为 << 运算符返回的临时 ostream 超过了它来自的字符串流。

还是我错了?

(为什么 string() 以这种方式工作?是因为它返回对自身的引用吗?我假设是的。)

我真的很想这样做,因为我会在登录发布模式时消除额外的分配。

任何以这种方式完成它的指针或技巧都将受到欢迎。在我的实际解决方案中,我有许多不同的日志功能,它们都比这更复杂。所以我希望在调用代码中以某种方式实现它。(如果可能,不要修改我的#define)

只是给出一个想法,我的一个实际#defines的一个例子:

它匹配采用 char*、string() 和 ostream() 的 varargs printf-like log 函数以及采用 string()、exception() 和 HRESULT 的非 vararg 函数。

0 投票
2 回答
2447 浏览

c++ - 从 std::string 流式传输而不制作副本?

我有一个网络客户端,其请求方法采用std::streambuf*. 该方法是通过boost::iostreams::copy将其添加到自定义std::streambuf派生类来实现的,该类知道如何将数据写入网络 API,效果很好。这意味着我可以将文件流式传输到请求中,而无需将其全部读入内存。

但是,在某些情况下,必须发送不在文件中的大数据块,因此我包含了一个采用字符串的重载。为了避免复制流中的所有网络代码,显然我应该设置一个streambuf表示字符串并调用另一个方法。我能想出完成这项工作的唯一方法是:

不幸的是,istringstream制作数据的副本,在某些情况下是几兆字节。当然,在一般情况下,如果您将 const 引用传递给某个对象,那么您不希望该对象可以继续使用该引用,这在一般情况下是完全有意义的。

我使用以下方法解决了这个问题:

这似乎工作得很好,但我想知道它是否真的有必要。为什么没有std::istringstream超载采取 a std::string const *?有一个更好的方法吗?

0 投票
1 回答
999 浏览

gcc - std::stringstream GCC 异常行为

在 Mac (GCC 4.2) 上编译一个简短的小程序时,我遇到了一个非常有趣的问题。下面的函数只会将字符或字符串流式传输到字符串流中,但不会将其他任何内容(int、double、float 等)流式传输。事实上,如果我尝试将例如 int 转换为字符串,则会设置失败标志。

但是,删除预处理器标志:_GLIBCXX_DEBUG=1默认情况下在 XCode 中为调试模式设置,将产生所需的结果/正确的行为。

这是我正在谈论的简单功能。value 是 T 类型的模板变量。针对 int、double、float(不工作)、char 和 strings(工作)进行了测试。

任何想法我做错了什么,为什么这不起作用,或者预处理器标志做了什么使它不再起作用?

谢谢!

0 投票
4 回答
3471 浏览

c++ - stringstream operator>> 作为函数失败,但作为实例工作?

我正在编写简单的代码,它将从文件中提取一堆名称、整数对。我正在修改仅使用的现有代码:

但是我想使用另一个(类似的)输入文件,它具有相同的前两列,但后面是其他数据(将被忽略)。所以我写:

但这无法编译,给出典型的淫秽 std lib 模板喷射:

对。line 不是 std::string,而是 std::basic_string 等的一些变体。但是,显式实例化 stringstream 是有效的。

为什么?第一种情况有什么问题?总是有用的 cplusplus.com 上的示例 basic_io有效,为什么我的代码不起作用?

Update: Another point of reference: the temporary stringstream works when the first value extracted is an int instead of a string:

0 投票
1 回答
214 浏览

c++ - wistringstream 从 xml 文件到整数?

这是我编写的用于int从 XML 文件中提取 an 并将其传递给loadedGame.points(an int) 的代码。但是,这是行不通的。它编译但没有给出正确的值。这是为什么? XMLDataNode是一个操作xmllite.dll.

0 投票
5 回答
594 浏览

c++ - 将 Fstream 的一部分复制到 Istringstream

经过大量寻找解决方案后,我决定实际寻求帮助!

我有一个由许多块组成的文件,其中每个块可能会或可能不会被压缩。在每个块之前是一个块大小的指示以及该块是否被压缩。每个块中都有一个标识该块的字符串。给定一个块名称,我想从文件中获取关联的块。

我的第一个想法是读取压缩标志和块的大小,将块读入 istringstream,如果需要解压缩 istringstream,然后搜索块名称。我可以读取压缩标志和块的大小,但我不知道如何将文件数据块读入 istringstream。我看到人们在哪里将整个文件读入 istringstream,但我不想这样做,因为每个块可能需要也可能不需要解压缩。

我错过了任何想法或解决方案的链接?还是有更好的算法?感谢您的任何评论。

0 投票
2 回答
4774 浏览

c++ - 重定向 cout -> std::stringstream,没有看到 EOL

我已经阅读了一堆关于将 std::cout 重定向到 stringstreams 的帖子,但是我在读取重定向的字符串时遇到了问题。

我需要在初始输出中挑选出新行 - 谁能告诉我如何做到这一点?

谢谢。