问题标签 [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++ - 字符串流提取不起作用
我似乎在从字符串流中提取数据时遇到问题。我提取的开始似乎缺少前两个字符。
我有类似于以下代码的内容:
我有一个问题,当我从“ssnew”读取数据时使用提取运算符时,它似乎跳过了前两个字符。例如,在调试器中,显示字符串流具有“001.111.62.2003...等”。但是,在第一个“ssnew >> bValid”之后,bValid 变为“true”,dValue 变为“0.111”,dTime 变为“0.62”,表明流中的前两个零被忽略。为什么它不是从流的开头开始?
干杯,赛斯
c++ - 为什么这种转换不起作用?
下面是我的功能。我称之为
和 RHS = "15\t// 评论"
它返回假,我除了 v=15 的真。我该如何解决?
c++ - stringstream、string 和 char* 转换混淆
我的问题可以归结为,从stringstream.str().c_str()
内存中返回的字符串在哪里,为什么不能分配给 a const char*
?
此代码示例将比我更好地解释它
stringstream.str().c_str()
可以分配给 a的假设const char*
导致了我花了一段时间才找到的错误。
对于奖励积分,任何人都可以解释为什么cout
用
正确打印字符串?
我在 Visual Studio 2008 中编译。
c++ - stringstream临时ostream返回问题
我正在创建一个包含以下部分的记录器:
带着这样的想法:
这一切都按预期工作,但是当我这样做时:
这没用:
导致“格式”包含垃圾数据而不是通常的正确字符串。
我认为这是因为 << 运算符返回的临时 ostream 超过了它来自的字符串流。
还是我错了?
(为什么 string() 以这种方式工作?是因为它返回对自身的引用吗?我假设是的。)
我真的很想这样做,因为我会在登录发布模式时消除额外的分配。
任何以这种方式完成它的指针或技巧都将受到欢迎。在我的实际解决方案中,我有许多不同的日志功能,它们都比这更复杂。所以我希望在调用代码中以某种方式实现它。(如果可能,不要修改我的#define)
只是给出一个想法,我的一个实际#defines的一个例子:
它匹配采用 char*、string() 和 ostream() 的 varargs printf-like log 函数以及采用 string()、exception() 和 HRESULT 的非 vararg 函数。
c++ - 从 std::string 流式传输而不制作副本?
我有一个网络客户端,其请求方法采用std::streambuf*
. 该方法是通过boost::iostreams::copy
将其添加到自定义std::streambuf
派生类来实现的,该类知道如何将数据写入网络 API,效果很好。这意味着我可以将文件流式传输到请求中,而无需将其全部读入内存。
但是,在某些情况下,必须发送不在文件中的大数据块,因此我包含了一个采用字符串的重载。为了避免复制流中的所有网络代码,显然我应该设置一个streambuf
表示字符串并调用另一个方法。我能想出完成这项工作的唯一方法是:
不幸的是,istringstream
制作数据的副本,在某些情况下是几兆字节。当然,在一般情况下,如果您将 const 引用传递给某个对象,那么您不希望该对象可以继续使用该引用,这在一般情况下是完全有意义的。
我使用以下方法解决了这个问题:
这似乎工作得很好,但我想知道它是否真的有必要。为什么没有std::istringstream
超载采取 a std::string const *
?有一个更好的方法吗?
gcc - std::stringstream GCC 异常行为
在 Mac (GCC 4.2) 上编译一个简短的小程序时,我遇到了一个非常有趣的问题。下面的函数只会将字符或字符串流式传输到字符串流中,但不会将其他任何内容(int、double、float 等)流式传输。事实上,如果我尝试将例如 int 转换为字符串,则会设置失败标志。
但是,删除预处理器标志:_GLIBCXX_DEBUG=1
默认情况下在 XCode 中为调试模式设置,将产生所需的结果/正确的行为。
这是我正在谈论的简单功能。value 是 T 类型的模板变量。针对 int、double、float(不工作)、char 和 strings(工作)进行了测试。
任何想法我做错了什么,为什么这不起作用,或者预处理器标志做了什么使它不再起作用?
谢谢!
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:
c++ - wistringstream 从 xml 文件到整数?
这是我编写的用于int
从 XML 文件中提取 an 并将其传递给loadedGame.points
(an int
) 的代码。但是,这是行不通的。它编译但没有给出正确的值。这是为什么? XMLDataNode
是一个操作xmllite.dll
.
c++ - 将 Fstream 的一部分复制到 Istringstream
经过大量寻找解决方案后,我决定实际寻求帮助!
我有一个由许多块组成的文件,其中每个块可能会或可能不会被压缩。在每个块之前是一个块大小的指示以及该块是否被压缩。每个块中都有一个标识该块的字符串。给定一个块名称,我想从文件中获取关联的块。
我的第一个想法是读取压缩标志和块的大小,将块读入 istringstream,如果需要解压缩 istringstream,然后搜索块名称。我可以读取压缩标志和块的大小,但我不知道如何将文件数据块读入 istringstream。我看到人们在哪里将整个文件读入 istringstream,但我不想这样做,因为每个块可能需要也可能不需要解压缩。
我错过了任何想法或解决方案的链接?还是有更好的算法?感谢您的任何评论。
c++ - 重定向 cout -> std::stringstream,没有看到 EOL
我已经阅读了一堆关于将 std::cout 重定向到 stringstreams 的帖子,但是我在读取重定向的字符串时遇到了问题。
我需要在初始输出中挑选出新行 - 谁能告诉我如何做到这一点?
谢谢。